異常分類
- 非受查異常
- Error: Java虛擬機內部或其他致命錯誤,無法挽救
- RuntimeException: 因為代碼問題導致的錯誤(數(shù)組越界篷帅、空指針等等)
- 受查異常
- IOException: 由于用戶輸入/調用時傳入的參數(shù)導致的錯誤(字符串格式/文件是否存在等等)
注意
- 必須用throw語句聲明受查異常调俘,而對于非受查異常棕洋,要么無法挽救(Error)泊业,要么就是本身自己編寫的代碼就有問題(RuntimeException)
- 子類重寫的方法異常聲明/拋出有限制:必須是比他的父類更加具體,或根本不拋出任何異常蜈出。
異常機制使用技巧
- 不要把異常處理代替簡單的測試
- 不要過分細化異常(可以try一個代碼塊,連續(xù)catch)
- 利用異常層次結構(拋出一個更具體的異常)
- 在檢測錯誤時涛酗,“苛刻”要比放任更加重要(早拋出铡原,拋出EmptyStackException會比后面的NullPointerException更好)
- 不要羞于傳遞異常(晚捕獲,傳遞異常)