1. 程式人生 > >運行時異常與受檢異常有何異同?

運行時異常與受檢異常有何異同?

正常的 異同 異常處理 捕獲 虛擬 沒有 操作 異常 面向對象

異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤,只要程序設計得沒有問題通常就不會發生。受檢異常跟程序運行的上下文環境有關,即使程序設計無誤,仍然可能因使用的問題而引發。Java編譯器要求方法必須聲明拋出可能發生的受檢異常,但是並不要求必須聲明拋出未被捕獲的運行時異常。異常和繼承一樣,是面向對象程序設計中經常被濫用的東西,在Effective Java中對異常的使用給出了以下指導原則:
- 不要將異常處理用於正常的控制流(設計良好的API不應該強迫它的調用者為了正常的控制流而使用異常)
- 對可以恢復的情況使用受檢異常,對編程錯誤使用運行時異常
- 避免不必要的使用受檢異常(可以通過一些狀態檢測手段來避免異常的發生)
- 優先使用標準的異常
- 每個方法拋出的異常都要有文檔
- 保持異常的原子性
- 不要在catch中忽略掉捕獲到的異常

運行時異常與受檢異常有何異同?