jvm 預設是如何處理異常的呢?
main函式收到乙個問題,有兩種處理方式
1.自己解決
2.自己解決不了,交給jvm解決
jvm有乙個預設的異常處理機制,就是將該異常顯示出來
包括 異常名稱、資訊、出現位置
異常的兩種處理方式:
1. try ... catch .. finally 捕獲並處理
try ...catch
try ... catch ..finally
格式:trycatch(異常型別 變數名)finally
2. throws丟擲
格式:訪問許可權修飾符 返回值型別 方法名(引數列表) throws 異常1,異常2 ... 異常n
區別:try ... catch 自己處理 程式可以繼續執行
throws 誰呼叫我 誰處理我 程式會被終止 不會繼續執行
throwable中常見的方法
string getmessage() 返回此throwable的詳細描述
string tostring() 返回此throwable的簡短描述
void printstacktrace() 將throwable堆疊追蹤資訊列印 jvm預設呼叫此方法顯示資訊
try ... catch 方式處理異常的特殊情況 --> 多異常情況
1.catch異常時,建議catch更具體的異常,這樣處理起來可以更有針對性
2.try後面可以跟多個catch 小的異常放前面 大的異常放後面
在 jdk1.7之後 ,可以乙個catch處理多個異常 中間用 | 分隔
finally 的特點
被finally控制的語句體,一定會被執行
finally 的作用
用於釋放資源 io流 和資料庫連線會用
捕獲和丟擲異常
異常處理5個關鍵字 try catch finally throw throws 不捕獲異常 public class test 捕獲異常,finally 可以不要,用於 假設io資源關閉,就會用到。public class test catch arithmeticexception e fina...
丟擲異常和捕獲異常 多捕獲和最終重新丟擲的異常處理
丟擲異常和捕獲異常 joseph d.darcy宣布,在langtools團隊成員maurizio cimadamore開發的多捕獲實現成功的經驗之後,具有多捕獲和最終重新丟擲的改進的異常處理將成為即將到來的jdk 7構建的一部分。當前,使用者可以將變更集應用於jdk 7 langtools儲存庫的...
異常處理機制
異常處理的三個步驟 檢查異常,丟擲異常,處理異常 異常處理基本原理 把需要檢測的程式放到try塊中,把異常處理的程式放在catch塊中。如果執行乙個函式出現了異常,可以丟擲異常資訊。然後查詢try塊下面的catch塊是否可以處理該異常。如果該函式不處理該異常,將傳遞給它的上一級函式 呼叫函式 如果它...