前端css筆記
阿新 • • 發佈:2022-04-01
異常處理
一、異常體系結構
二 、常見異常型別
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);
}
}