溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java異常處理try?catch怎么用

發(fā)布時間:2021-12-06 12:22:56 來源:億速云 閱讀:177 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)Java異常處理try catch怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

我們編譯運行程序出錯的時候,編譯器就會拋出異常。拋出異常要比終止程序靈活許多,這是因為Java提供了一個“捕獲”異常的的處理器(處理器)對異常情況進行處理。

如果沒有提供處理器機制,程序就會終止,并在控制臺上打印一條信息,給出異常的類型.L

比如:使用了NULL引用或者是數(shù)組越界等。

異常有兩種類型:未檢查異常和已檢查異常對于已檢查異常,處理器器將會檢查是否提供了處理器。

然而有許多的異常,如:訪問null引用,都屬于未檢查異常。編譯器不會查看是否為這些錯誤提供了處理器。畢竟,應該用嚴謹?shù)膽B(tài)度來對待寫代碼,依次避免這些錯誤的發(fā)生,而不是將精力花在編寫異常處理器上。

 廢話少說,show coder: 

 / * try catch:自己處理異常

  * try {

  *可能出現(xiàn)異常的代碼

  *} catch(異常類名A e){

  *如果出現(xiàn)了異常類A類型的異常,那么執(zhí)行該代碼

  *} ...(catch可以有多個)

  * finally {

  *最終肯定必須要執(zhí)行的代碼(例如釋放資源的代碼)

  *}

  *代碼執(zhí)行的順序:

  •   * 1.try內(nèi)的代碼從出現(xiàn)異常的那一行開始,中斷執(zhí)行

  •   * 2.執(zhí)行對應的catch塊內(nèi)的代碼

  •   * 3.繼續(xù)執(zhí)行try catch結(jié)構(gòu)之后的代碼

  *注意點:

  •   * 1.如果catch內(nèi)的異常類存在子父類的關(guān)系,那么子類應該在前,父類在后

  •   * 2。如果最后中有返回語句,那么最后返回的結(jié)果肯定以最終中的返回值為準

  •   * 3。如果最后語句中有回報,那么沒有被處理的異常將會被吞掉

  *重寫的注意點:

  •   * 1.兒子不能比父親的本事大

  •   * 2.兒子要比父親開放

  •   * 3.兒子不能比父親惹更大的麻煩(子類的異常的類型不能是父類的異常的父類型)

  *異常類Api:

  •   * 1。的getMessage():獲取異常描述信息字符串

  •   * 2。的toString():返回異常類的包路徑和類

  • 名和異常描述信息字符串  

  •   * 3。的printStackTrace():除了打印的toString的信息外,還要打印堆棧信息

  * /

上面一段注釋來自網(wǎng)上這位博主的,覺得寫的很好,傳送門地址:https://blog.csdn.net/wanghuiwei888/article/details/78818203

package Bird;
 
import java.io.FileNotFoundException;
import java.io.FileReader;
 
//
public class TestYc {
	public static void main(String[] args) {
		try{
			FileReader fr = new FileReader("c:/abc.txt");
					} catch (FileNotFoundException e) {
						//打印輸出異常
						e.printStackTrace();
					}		
	
	Mother mother  = new Mother();
	mother.bbb();
	//1.編譯時異常
	//讀取該路徑"c:/abc.txt"下的文件
	/* try {
		 FileReader fr = new FileReader("c:/abc.txt");
	 }catch(FileNotFoundException e) {
		//打印輸出異常
			e.printStackTrace();
	 }*/
	int [] arr = new int[] {1,2,3};
	System.out.println(arr[2]);
	}
}
 
class Mother {
 
	private Boy b = null;
 
	// 構(gòu)造器
	public Mother() {
 
		b = new Boy();
 
	}
 
	public void bbb() {
		// TODO Auto-generated method stub
		//調(diào)用帶有異常的方法
		try {
			b.aaa();
		}catch(FileNotFoundException e) {
			e.printStackTrace();
			
		}
		
	}
}
 
class Boy {
	// throws 把異常拋給上層的調(diào)用者
	public  void aaa() throws FileNotFoundException{
		FileReader fr = new FileReader("c:/abc.txt");
	}
}

運行截圖,文件打開不存在:

Java異常處理try?catch怎么用

 正常運行截圖:

Java異常處理try?catch怎么用

關(guān)于“Java異常處理try catch怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI