異常的思考:
異常:1.error: --不希望被程式捕獲或者是程式無法處理的錯誤
記憶體溢位,棧溢位等等。
2.執行時異常: --不做處理的話可以正常編譯。
**邏輯有問題,不嚴謹導致,可以規避。比如空指標異常,陣列下標越界,型別轉換異常,類找不到 等。
3.非執行時異常: --不做處理的話編譯無法通過。
io異常,sql異常等。
異常的另一種分類:
1.檢查異常 --必須處理,不做處理,編譯期無法通過。
2.非檢查異常 --包括執行期異常和error
異常的使用給出了以下指導原則:
- 不要將異常處理用於正常的控制流(設計良好的api不應該強迫它的呼叫者為了正常的控制流而使用異常)
- 對可以恢復的情況使用受檢異常,對程式設計錯誤使用執行時異常
- 避免不必要的使用受檢異常(可以通過一些狀態檢測手段來避免異常的發生)
- 優先使用標準的異常
- 每個方法丟擲的異常都要有文件
- 保持異常的原子性
- 不要在catch中忽略掉捕獲到的異常
自定義異常:
1.自定義異常類--需要繼承exception 重寫tostring方法
2.在方法中丟擲。
參考:
異常學習筆記
1.按照程度來分 1.error嚴重錯誤 2.exception一般問題 2.按照處理方式來分1 受檢異常 checked 在程式中必須接受檢查和處理的異常.如果不處理編譯錯誤,也稱為編譯時異常 exception及其子類 runtimeexception及其子類除外 2 非受檢異常 uncheck...
C 異常學習筆記
vc 中的異常捕獲的規則 可以捕獲的異常有以下三種情況 1.必須嚴格遵守匹配資料型別 2.異常處理的資料型別是公有類,拋擲的異常的資料型別是派生類。3.異常處理的資料型別是指向公有基類的指標,拋擲異常的資料型別是指向派生類的執針 對於派生層次結構的異常處理,catch 塊組的順序是重要的。因為 ca...
java學習筆記 異常
1 異常的限制 當覆蓋方法的時候,只能丟擲在基類方法的異常說明裡列出的那些異常。這個限制很有用,因為這意味著,當基類使用的 應用到期派生類物件的時候,一樣能夠工作。public class exceptionrestrictiontest extends inning implements stor...