ぺーぺーSEのブログ

備忘録・メモ用サイト。

Error、チェック例外(Exception)、非チェック例外(RuntimeException)の扱い

チェック例外、非チェック例外

  • java.lang.Throwable
    • java.lang.Error...例外処理できないアプリケーション外部で発生する深刻なエラー
      • java.lang.AssertionError
    • java.lang.Exception
      • java.lang.RuntimeException

RuntimeExceptionを継承しないものを「チェック例外」、RuntimeExceptionを継承するものを「非チェック例外」という。
「チェック例外」はtry-catchやthrowsが必要なもので、「非チェック例外」はtry-catchやthrowsが不要なものである。

Error、RuntimeException、Exceptionの使い分け

  • Error
    • 呼び出される側の処理でバグが発生したことを知らせるもの
    • 呼び出されたクラス、メソッド内部で発生したバグであり、呼び出す側からはハンドリング不可能
  • RuntimeException(非チェック例外)
    • 呼び出す側でバグが発生したことを知らせるもの
    • クラス、メソッドを呼び出す側での使い方が仕様にあっていない
  • Exception(チェック例外)
    • バグを通知するものではない
    • 所謂業務例外、呼び出す側でハンドリング可能なもの

参考:
http://msugai.fc2web.com/java/throwstry.html
http://www.tohoho-web.com/java/exception.htm
http://d.hatena.ne.jp/daisuke-m/20081202/1228221927