1. 程式人生 > >java 異常處理之宣告丟擲異常

java 異常處理之宣告丟擲異常

java 異常處理宣告丟擲異常

2.宣告丟擲異常是Java中處理異常的第二種方式

  1. 如果一個方法(中的語句執行時)可能生成某種異常,但是並不能確定如何處理這種異常,則此方法應顯示地宣告丟擲異常,表明該方法將不對這些異常進行處理,而由該方法的呼叫者負責處理。
  2. 在方法宣告中用throws語句可以宣告丟擲異常的列表,throws後面的異常型別可以是方法中產生的異常型別,也可以是它的父類。
    宣告丟擲異常舉例:
public class TestException2 {
	//常規處理方式
	public static void main(String[] args) {
		TestException2 t = new TestException2();
		try {
			t.method2();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	//拋,常規不使用該方式處理異常
	public static void main(String[] args) throws IOException{//main方法在往上就是JVM了
		TestException2 t = new TestException2();
		t.method2();
	}
	public void method2() throws IOException{//往上拋,拋給他的呼叫者
		method1();
	}
	public void method1() throws FileNotFoundException,IOException{//往上拋,拋給他的呼叫者
		FileImageInputStream fis = new FileImageInputStream(new File("testEception.txt"));
		int b;
		while((b = fis.read()) != -1) {
			System.out.println((char)b);
		}
		fis.close();
	}
}

總結:

  • 格式,如:public void method1() throws FileNotFoundException,IOException{}
  • 當此方法在內部出現異常的時候,會丟擲一個異常類物件,拋給方法的呼叫者。
  • 異常的物件可以逐層向上拋,直至main中,在向上拋的過程中,可以通過try-catch-finally捕獲處理。
  • 使用的時候一般不會這個逐層往上拋,一般會在某個特定地方進行處理(try-catch),因為如果誰都不處理這個問題的話,程式就停止運行了。
  • 核心思想:(try-catch)在專案中使用最多,其在出現異常的時候,就是告訴程式怎麼處理,如果一直丟擲,那最後要處理的人,很可能就是不知道,當初出現問題是什麼?
  • 專案中,一般不是編譯不過的,不會用異常處理,具體是原因,可以思考一下,回覆哩。。