異常,斷言和日誌(一)
阿新 • • 發佈:2018-12-20
錯誤發生之後應該怎麼辦:
•向用戶通告錯誤;
•儲存所有的工作結果;
•允許使用者以妥善的形式退出程式。
Java中所有異常都是派生於類Throwable的一個例項:
各種異常分類的標準:
RuntimeException相當於邏輯錯誤
關於受查異常和非受查異常:
方法後的宣告:
如果在子類中覆蓋了超類的一個方法, 子類方法中宣告的受查異常不能比超類方 法中宣告的異常更通用(也就是說, 子類方法中可以丟擲更特定的異常, 或者根本不拋 出任何異常)。 特別需要說明的是, 如果超類方法沒有丟擲任何受查異常, 子類也不能拋 出任何受查異常。
而在 Java 中, 沒有 throws 說明符的方法將不能丟擲任何受查異常。
捕獲異常
合併catch語句:
將原始異常設定為新異常的原因:
finally多用於資源管理,確保無論在任何情況下,程式碼都能得到執行
try 語句可以只有 finally 子句, 而沒有 catch 子句。
異常如果沒有catch住,會繼續丟擲。與finally無關
關於解耦:
當finally語句包含return的時候的執行效果:
帶資源的try語句
不管是正常退出還是存在異常,都會呼叫close方法
也可以指定多個資源:
帶資源的 try 語句自身也可以有 catch 子句和一個 finally 子句。
這些子句會在 關閉資源之後執行。 不過在實際中, 一個 try語句中加入這麼多內容可能不是一個好 主 意。
分析堆疊軌跡元素
全部打印出來:
分析這個陣列:
獲得所有執行緒的執行軌跡: