二、異常處理
1、理解異常
程序在運行過程中出現的問題稱為異常(Exception),出現異常時的處理叫異常處理
JAVA的異常分為:
? ? Error:java應用程序本身無法恢復的嚴重錯誤,程序不需要捕獲、處理這些嚴重錯誤
? ? Exception:java程序拋出和處理的非嚴重異常,分為運行時異常(RuntimeException)和檢查異常(CheckException),也稱非運行時異常
所有的異常都繼承至java.lang.Throwable類
Throwable
? ? ---- Error
? ? ---- Exception?
? ? ? ? ---- RuntimeException
? ? ? ? ---- CheckException
2、Exception
需要程序員處理的,如果此類異常被捕獲,程序在運行時是不會崩潰的,如果沒有捕獲(不做異常處理),可能導致整個程序運行崩潰
Exception異常分為2類:
? ? 運行時異常:正常編譯,但程序運行時出的問題,又稱為非檢查異常
? ? 檢查異常:此異常是在編寫代碼時就會以紅色波浪線提示,需要做異常處理,又稱非運行時異常
常見的運行時異常:
java.lang.ArrayIndexOutOfBoundsException:數組的下標越界異常
java.lang.ArithmeticException:數學運算異常
java.lang.NullPointerException:空指針異常
java.lang.ClassCastException:類型轉換異常
java.lang.NumberFormatException:數字格式化異常
java.util.InputMismatchException:輸出信息類型不匹配異常
常見的檢查異常:
java.io.FileNotFoundException:文件找不到異常?
java.io.IOException:輸入輸出異常
java.lang.NoSuchMethodException:方法未找到異常
java.io.FileNotFoundException:文件找不到異常?
java.io.IOException:輸入輸出異常
java.lang.NoSuchMethodException:方法未找到異常
3、異常處理
異常處理的三種結構:
try{
? ? //可能出現異常語句塊
}catch(SomeException e){// 特指某些特定的異常
? ? //當捕獲到SomeException類型的異常時執行的語句塊,通常是打印該異常信息
}
catch語句可以多個,但如果是Exception類型來捕獲,必須為最后一個catch
如果try語句塊中的代碼沒有異常,則try語句塊執行完畢后,catch中的語句塊不執行;如果try語句塊有異常,則try語句塊中發生異常之后的代碼不執行,而由相應的catch語句進行捕獲,catch中的代碼會執行
? ? try…catch…finally
try {
? ? //可能拋出異常的語句塊
}catch(SomeException e){
? ? //當捕獲到異常時運行的語句塊
}finally {
? ? //不管是否發生異常都會執行的語句塊
}
?