Java中的異常判斷以及文件中的常用方法及功能

目錄

異常

作用

異常的處理方式

JVM(虛擬機)默認的處理方式

自己處理(捕獲異常)

拋出異常(也就是交給調用者處理)

自定義異常

file

File中常見成員方法

判斷和獲取

創建和刪除?

?獲取并遍歷


?

異常

異常就是代表程序出現的問題。

異常在java.lang.Throwable這個包里,包含Error異常和Exception異常。

Error:代表的系統級別錯誤(屬于嚴重問題)
系統一旦出現問題,sun公司會把這些錯誤封裝成Error對象。
Error是給sun公司自己用的,不是給我們程序員用的。
因此我們開發人員不用管它。

Exception:叫做異常,代表程序可能出現的問題。
我們通常會用Exception以及他的子類來封裝程序出現的問題。
運行時異常:RuntimeException及其子類,編譯階段不會出現異常提醒。
運行時出現的異常(如:數組索引越界異常)
其他異常(也就是編譯時異常):編譯階段就會出現異常提醒的。(如:日期解析異常)沒有繼承RuntimeExcpetion的異常,直接繼承于Excpetion。編譯階段如果編譯錯誤就會有錯誤提示

異常體系的最上層父類是Exception,并且異常分為兩類:編譯時異常、運行時異常

作用

1、是用來查詢bug的關鍵參考信息。

2、可以作為方法內部的一種特殊返回值,以便通知調用者底層的執行情況。如下:

之前寫法:

現在:

?

age賦值-2,運行main方法,控制臺輸出 :

異常的處理方式

JVM(虛擬機)默認的處理方式

把異常的名稱,異常原因以及異常出現的位置等信息輸出在了控制臺。

程序停止執行,下面的代碼不會再執行了。

自己處理(捕獲異常)

主要目的:當代碼出現異常時,可以讓代碼繼續往下執行。

格式:

try{可能出現異常的代碼;}catch(異常類名? 變量名){異常處理的代碼;}

如果try中沒有遇到問題,把try里面所有的代碼執行完,并且往后執行,但是不會執行catch里面的代碼。

如果try中可能會遇到多個問題,在try里面,執行遇到的第一個問題就會創建它對應的異常對象,try后面的代碼就不會執行了,直接把這個創建的異常對象與catch里面作比較。

如果try中可能會遇到多個問題,我們也會寫多個catch與之對應,如果這些異常存在父子關系,那么父類一定要寫在下面。(比如Exception與ArithmeticException就是父類子類的關系)

控制臺輸出:

如果try中遇到的問題沒有被捕獲,相當于try...catch代碼沒有任何作用和沒寫一樣,就是把當前創建的異常對象交給虛擬機默認處理(異常處理方式的第一種方式)。

異常的常用方法:

對于以上catch中的異常處理我只寫了一個輸出語句,但是這樣是不規范的。

Throwable的成員方法:
public String getMessage():返回此 throwable 的詳細消息字符串(異常簡短信息)
public String toString():返回此可拋出的簡短描述(異常簡短信息以及異常名字)

public void printStackTrace():把異常的錯誤信息輸出在控制臺(異常簡短信息以及異常名字以及異常出現的位置)(最常用)

ctrl+Alt+t快捷鍵idea自動生成。

拋出異常(也就是交給調用者處理)

主要目的:告訴調用者出錯了

throws:寫在方法定義處,表示聲明一個異常,告訴調用者,使用本方法可能會有哪些異常。(如果是編譯時的異常那么必須要寫,如果是運行時異常那么可以不寫)

throw:寫在方法內,表示結束方法;手動拋出異常對象,把異常對象交給調用者,方法中下面的代碼不再執行了。

自定義異常

主要目的:為了讓控制臺的報錯信息更加見名知意。

1、定義異常類

2、寫繼承關系(如果定義的是運行時的異常繼承RuntimeException,但是如果是編譯時的異常直接繼承Exception)

3、空參構造和帶參構造

Alt+insert在idea自動生成

file

文件保存的位置:路徑(file)

file對象就表示一個路徑,可以是文件的路徑、也可以是文件夾的路徑。

這個路徑可以是存在的,也允許是不存在的。

public File(String pathname):根據文件路徑創建文件對象
public File(String parent, String child):根據父路徑名字符串和子路徑名字符串創建文件對象
public File(File parent, String child):根據父路徑對應文件對象和子路徑名字符串創建文件對象

?

相對路徑:不帶盤符,默認到當前項目下去找。是相對當前項目下的路徑

絕對路徑:帶盤符

File中常見成員方法

判斷和獲取

public boolean isDirectory():判斷此路徑名表示的File是否為文件夾
public boolean isFile():判斷此路徑名表示的File是否為文件
public boolean exists):判斷此路徑名表示的File是否存在
public long length():返回文件的大小(字節數量,只能獲取文件的大小)
public String getAbsolutePath():返回文件的絕對路徑
public String getPath():返回定義文件時使用的路徑
public String getName():返回文件的名稱,帶后綴(如果調用者是文件夾,那么返回的就是文件夾的名字)
public long lastModified():返回文件的最后修改時間(時間毫秒值)

這里說一個idea的快捷鍵:如果在idea要改變一個變量的名稱,并且用這個變量的所有變量,都要改為改變之后的變量名那么就用shift+F6來改變。

在這個文件的屬性我們可以看見大小為21個字節,1字節=8bit,而這個文件的內容是:我們都應該堅持,說明一個漢字占三個字節24個比特位。?

?

創建和刪除?

public boolean createNewFile():創建一個新的空的文件(創建的一定是個文件,如果沒有后綴,那么創建的文件也沒有后綴,反正不可能創建文件夾)
public boolean mkdir():創建單級文件夾
public boolean mkdirs():創建多級文件夾,同時也能創建單級文件夾,所以mkdir方法不常用
public boolean delete():刪除文件空文件夾(刪除不會經過回收站,直接刪)

?獲取并遍歷

public File[] listFiles():獲取當前該路徑下所有內容。

當調用者File表示的路徑不存在時,返回null
當調用者File表示的路徑是文件時,返回null
當調用者File表示的路徑是一個空文件夾時,返回一個長度為0的數組
當調用者File表示的路徑是一個有內容的文件夾時,將里面所有文件和文件夾的路徑放在File數組中返回
當調用者File表示的路徑是一個有隱藏文件的文件夾時,將里面所有文件和文件夾的路徑放在File數組中返回,包含隱藏文件
當調用者File表示的路徑是需要權限才能訪問的文件夾時,返回null

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/91075.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/91075.shtml
英文地址,請注明出處:http://en.pswp.cn/web/91075.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++算法】74.優先級隊列_最后一塊石頭的重量

文章目錄題目鏈接:題目描述:解法C 算法代碼:題目鏈接: 1046. 最后一塊石頭的重量 題目描述: 解法 每次取出最重的兩塊石頭進行碰撞,將剩余的石頭重新放入堆中。 C 算法代碼: class Solution …

中興云電腦W101D2-晶晨S905L3A-2G+8G-安卓9-線刷固件包

中興云電腦W101D2-晶晨S905L3A-2G8G-WIFI-藍牙5.0-3個USB2.0-線刷包線刷方法:1、準備好一根雙公頭USB線刷刷機線,長度30-50CM長度最佳,同時準備一臺電腦;2、電腦上安裝好刷機工具Amlogic USB Burning Tool 軟件 →打開軟件 →文件…

Android OkHttp 底層原理和實戰完全教程(責任鏈模式詳解)

目錄 1. OkHttp 入門:從一個請求開始 1.1 基本 GET 請求:三步走 1.2 同步 vs 異步:選擇你的風格 1.3 為什么選 OkHttp? 2. 配置 OkHttpClient:打造你的專屬網絡引擎 2.1 超時設置:別讓請求卡死 2.2 添加攔截器:窺探請求全過程 2.3 緩存:讓請求更快更省流量 3. …

【RK3588部署yolo】算法篇

簡歷描述收集并制作軍事偽裝目標數據集,包含真實與偽裝各種類型軍事目標共計60余類。其中,包含最新戰場充氣偽裝軍事裝備30余類,并為每一張圖片制作了詳細的標注。針對軍事偽裝目標的特點,在YOLOv8的Backbone與Neck部分分別加…

【Spring Boot 快速入門】一、入門

目錄Spring Boot 簡介Web 入門Spring Boot 快速入門HTTP 協議概述請求協議響應協議解析協議TomcatSpring Boot 簡介 Spring Boot 是由 Pivotal 團隊(后被 VMware 收購)開發的基于 Spring 框架的開源項目,于 2014 年首次發布。其核心目標是簡…

如何調整服務器的內核參數?-哈爾濱云前沿

調整服務器內核參數是一項較為專業的操作,不同的操作系統調整方式略有不同,以下以常見的 Linux 系統為例,介紹一些調整服務器內核參數的一般步驟和常用參數:一般步驟 備份當前配置:在修改內核參數之前,先備…

C++基礎:模擬實現queue和stack。底層:適配器

引言模擬實現queue和stack,理解適配器,實現起來非常簡單。一、適配器 適配器是一種能讓原本不兼容的接口協同工作的設計模式或者組件。它的主要作用是對一個類的接口進行轉換,使其符合另一個類的期望接口,進而實現適配和復用。&am…

OI 雜題

OI 雜題字符串括號匹配例 1:與之前的類似,就是講一點技巧,但是比較亂,湊合著看吧。 字符串 括號匹配 幾何意義:考慮令 ( 為 111 變換,令 ) 為 ?1-1?1 變換,然后對這個 1/?11/-11/?1 構成…

【論文閱讀】Safety Alignment Should Be Made More Than Just a Few Tokens Deep

Safety Alignment Should Be Made More Than Just a Few Tokens Deep原文摘要問題提出現狀與漏洞:當前LLMs的安全對齊機制容易被攻破,即使是簡單的攻擊(如對抗性后綴攻擊)或良性的微調也可能導致模型越獄。核心論點: 作…

Generative AI in Game Development

如有侵權或其他問題,歡迎留言聯系更正或刪除。 出處:CHI 20241. 一段話總結本研究通過對來自 Reddit 和 Facebook 群組的 3,091 條獨立游戲開發者的在線帖子和評論進行定性分析,探討了他們對生成式 AI在游戲開發中多方面作用的認知與設想。研…

【C++算法】72.隊列+寬搜_二叉樹的最大寬度

文章目錄題目鏈接:題目描述:解法C 算法代碼:題目鏈接: 662. 二叉樹最大寬度 題目描述: 解法 這里的寬度指的是一層的最右邊的非空節點到一層的最左邊的非空節點,一共的節點數。 解法一:硬來&am…

什么是3DVR?VR技術有哪些應用場景?

VR與3D技術解析及應用在高科技領域,VR和3D是兩個常被提及的名詞。那么,這兩者之間究竟存在著怎樣的區別與聯系呢?簡而來說,VR技術是3D技術的一種高級延展和深化應用。3D技術,即將二維設計圖轉化為立體、逼真的視覺效果…

棧與隊列:數據結構核心解密

棧和隊列的基本 棧(Stack)是一種后進先出(LIFO, Last In First Out)的數據結構。元素的插入和刪除操作只能在棧頂進行。常見的操作包括壓棧(push)和彈棧(pop)。 隊列(Queue)是一種先進先出(FIFO, First In First Out)的數據結構。元素的插入在隊尾進行,刪除在隊…

《C++初階之STL》【list容器:詳解 + 實現】

【list容器:詳解 實現】目錄前言------------標準接口介紹------------標準模板庫中的list容器是什么樣的呢?1. 常見的構造2. 迭代器操作std::list::beginstd::list::endstd::list::rbeginstd::list::rend3. 容量的操作std::list::sizestd::list::empty…

【灰度實驗】——圖像預處理(OpenCV)

目錄 1 灰度圖 2 最大值法 3 平均值法 4 加權均值法 5 兩個極端的灰度值 將彩色圖轉為灰度圖地過程稱為灰度化。 灰度圖是單通道圖像,灰度化本質就是將彩色圖的三通道合并成一個通道的過程。三種合并方法:最大值法,平均值法和加權均值法…

【linux驅動開發】編譯linux驅動程序報錯:ERROR: Kernel configuration is invalid.

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄一、報錯二、解決方法1.先編譯linux內核源碼2.再重新編譯驅動程序一、報錯 在編譯驅動程序過程中,經常碰到的一個小問題: make -C /home/lu…

Java面試寶典:MySQL中的鎖

InnoDB中鎖的類型非常多,總體上可以如下分類: 這些鎖都是做什么的?具體含義是什么?我們現在來一一學習。 1. 解決并發事務問題 我們已經知道事務并發執行時可能帶來的各種問題。最大的一個難點是:一方面要最大程度地利用數據庫的并發訪問能力,另一方面又要確保每個用戶…

設備識別最佳實踐:四維交叉驗證框架

設備識別最佳實踐:四維交叉驗證框架 1. MAC地址分析(40%權重) - 設備身份核驗 核心方法: # MAC地址標準化(OUI提取) mac"B4:2E:99:FB:9D:78" oui$(echo $mac | tr -d : | cut -c 1-6 | tr a-f A-…

《Java 程序設計》第 9 章 - 內部類、枚舉和注解

大家好,今天我們來學習《Java 程序設計》第 9 章的內容 —— 內部類、枚舉和注解。這三個知識點是 Java 中提升代碼靈活性和可讀性的重要工具,在實際開發中非常常用。接下來我們逐一展開講解,每個知識點都會配上可直接運行的代碼示例&#xf…

CTF Misc入門篇

在CTF比賽中,misc方向是必考的一個方向,其中,圖形隱寫是最最常見的類型。 先從Misc開始入門,一般會借助CTF SHOW解題平臺,解題,然后進行技巧總結。 目錄 圖片篇(基礎操作) misc1 misc2 misc3 misc4 …