C# は検査例外がないから
C# は検査例外がないから、作るときは楽チンだけど、作り終わってからが大変。
.NET Framework 1.1 の CLR は、捕捉されない例外が発生したらスレッドが黙って死ぬんだけど、これは .NET Framework 2.0 からアプリが死ぬように改善(?)された。
Java とは結構ポリシーが異なる。
ちなみに Java に実行時例外がある理由は:
- いちいちチェックしているとコーディングが大変だから
- ロジックによって完全に発生しないことが証明できるから
ということになる。
Java で業務処理例外を実装する場合、上記を念頭に置いて設計すると、レビュー時に「おっ、こいつはわかってるな」と思われるか「業務処理例外が RuntimeException の派生クラスとかw」と一蹴されるかどちらかでしょう。いや、「業務処理例外なんてものはあってはならない」ということになれば、そのレビュアーが一番良いレビュアーかもしれない。