1. 程式人生 > 其它 >前端css筆記

前端css筆記

異常處理

一、異常體系結構

二 、常見異常型別

java.lang.Throwable

  • java.lang.Error:一般不編寫針對性的程式碼進行處理。
  • java.lang.Exception:可以進行異常的處理
    • 編譯時異常(checked)
      • IOException
      • FileNotFoundException
      • ClassNotFoundException
    • 執行時異常(unchecked,RuntimeException)
      • NullPointerException
      • ArrayIndexOutOfBoundsException
      • ClassCastException
      • NumberFormatException
      • InputMismatchException
      • ArithmeticException

三、異常的處理

3.1 try-catch-finally

try{
	//可能出現異常的程式碼
}catch(異常型別1 變數名1){
	//處理異常的方式1
}catch(異常型別2 變數名2){
	//處理異常的方式2
}catch(異常型別3 變數名3){
	//處理異常的方式3
}
....
finally{
	//一定會執行的程式碼
}
  • finally是可選的,程式碼塊中的語句一定會被執行
  • 一旦try中的異常物件匹配到某一個catch時,就進入catch中進行異常的處理。一旦處理完成,就跳出當前的try-catch結構
  • catch中的異常型別如果滿足子父類關係,則要求子類一定宣告在父類的上面。否則,報錯
  • 常用的異常物件處理的方式: ① String getMessage() ② printStackTrace()
  • 像資料庫連線、輸入輸出流、網路程式設計Socket等資源,JVM不能自動的回收的,需要手動的進行資源的釋放,就需要宣告在finally中

3.2 throws

"throws + 異常型別"寫在方法的宣告處。指明此方法執行時,可能會丟擲的異常型別。一旦當方法體執行時,出現異常,仍會在異常程式碼處生成一個異常類的物件,此物件滿足throws後異常型別時,就會被丟擲。異常程式碼後續的程式碼,就不再執行!

3.3 使用

捕捉並處理知道如何處理的異常,而丟擲不知道如何處理的異常。

四、自定義異常類

如何定義:

  • 繼承於現的異常結構:RuntimeException 、Exception
  • 提供全域性常量:serialVersionUID
  • 提供過載的構造器
public class MyExceptionTest {
	public static void main(String[] args) {
		MyExceptionTest test = new MyExceptionTest();
		test.method();
	}
	
	public void method() {
		try {
			method1();
		} catch (Exception e) {
			System.out.println(e.getMessage());
			e.printStackTrace();
		}
	}
	
	public void method1() throws Exception {
		throw new MyException("丟擲異常!");
	}
}

class MyException extends Exception {
	
	static final long serialVersionUID = -33875353129948L;
	
	public MyException() {
	}
	
	public MyException(String msg) {
		super(msg);
	}
}