Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで6

6-1-1 例外の3つの種類

  • 検査例外(Exception)おもにプログラム作成時に想定できる異常を通知するために使用します try catch 必要
  • 実行時例外(RuntimeException)おもにプログラム作成時に想定されないエラーを通知するために使用します try catch 不要
  • エラー(Error)例外とは異なり、システムの動作を継続できない「致命的なエラー」を示します

6-1-3 例外処理の3つの構文を使いこなす

  • tryブロックの開始時に記述する宣言は、複数の文を記述できます

6-2-1 エラーコードをreturnするコードは古い

  • エラーが発生したら例外を発生させるべきです

6-2-2 例外をもみ消さない

  • (1)ログ出力を忘れない
  • (2)処理を継続するか判断する

6-2-3 恐怖のthrows Exception感染

  • (1)呼び出し元でExceptionを捕捉しなければならなくなる
  • (2)途中でIOExceptionなど具体的な例外が発生するとしても、Exceptionに巻き込まれる
  • (3)途中でRuntimeExceptionが発生しても、Exceptionに巻き込まれる

6-2-4 どの階層で例外を捕捉して処理するべきか

  • 例外が発生する(可能性がある)箇所
    • 末端の処理では「例外を発生されるだけ」に留めるが良いでしょう
  • 処理の流れを判断する箇所

6-2-5 独自例外を作成する

  • (1)アプリケーション例外(例:ApplicationExceptionクラス)
  • (2)システム例外(例:SystemExceptionクラス)
    • 業務に特化した処理である(少なくとも、広く再利用するものではない)
    • フレームワークやシステムで共通的な例外処理をする
  • 筆者のおすすめは、メッセージの替わりに、エラーIDとパラメータを指定するというものです

6-2-6 例外のトレンド

  • (1)検査例外よりも実行時例外を使う
  • (2)ラムダ式のなかで発生した例外の扱い
  • (3)Optionalクラスの導入によるメリット

kameyatakefumi.hatenablog.com
kameyatakefumi.hatenablog.com