Java のチェック例外と非チェック例外の考察まとめ

世間ではオワコンと揶揄されることも珍しくない Java ですが、Java を初めたばかりのエンジニアがチェック例外と非チェック例外の使い分けについて「ベストプラクティスないの?」と調べたのをまとめてみました。

例外との付き合い方

Java のチェック例外は強力な機能だと思いますが、使いどころが難しいのもまたしかり、です。
素晴らしいエントリの数々を読んだ結果、Java の例外との付き合い方が見えてきました。

  • どのような方針であっても、組織 (プロジェクト) では統一することを第一とする *3
  • 教条主義には陥らないようにする
  • 判断に迷うことがあったら実践側に振れることをまず考える

例外処理の実践

いろいろな人が (自嘲気味に) 話してくれたりするのはこんなコードです。
Java を5〜6年使っている人でも普通に書くのだそうですが、こうするとなにか嬉しいのですかね…

try {
    /* 何らかの処理 */
} catch (Exception e) {
    // YYYY/MM/DD メモ
    // なぜかコンパイルエラーになる。
    // コンパイルエラーを回避するために try 〜 catch 追加
}

性格はともかく、全然関係ないところで問題になりがちですよね。
すぐにやめたいところですが、既に動いているシステムだとなかなか難しいこともあるのでしょう。
"問題なく" *4 動いていればこれもまたアリなのかもしれませんが…

*1:2009 〜 2010 年に書かれているエントリが大半で、今さら調べていることには非常に危機感を感じますが…

*2:防御的プログラミングと契約による設計について書かれています

*3:現状のままいつまでもいくということではないです

*4:問題ない、と評価されること