例外処理について考えてみた

例外について

日報に、例外の事を書いたので、ここに引用してみる。

例外処理について、再考しながらの設計となっています。
改めて調べてみると、いろんな考え方があり、人によっても途中で主義を変えたりしています。
http://blogs.msdn.com/b/nakama/archive/2008/12/29/net-part-1.aspx
http://csharper.blog57.fc2.com/blog-entry-99.html

自分の現在の考えは、『業務エラーは例外で表現するべき』ですが、Try-Catch握り潰しを書くと、不正な状態のまま業務を継続してしまうというのがリスクです。
どんな表現方法にもリスクはあるので、万能な手法はないですが・・・

いま自分の中で興味のある分野は、『Tryを書くタイミング』です。

  • 不正な値を持ったまま処理を継続してはならない。
  • 本番環境で、システムが強制終了してはならない。

この2つは、相反する命題です。
Tryを多用すると前者のリスクが高まり、使わないと後者のリスクが高くなります。
その間のちょうどよい処理をどんな順序で書くか、そこが大切ではないでしょうか。

  1. 定型的な処理には『お約束の例外』が決めてあり、そこまではあらかじめ対策を検討しておく。
  2. 複雑な条件で発生する例外については、『起こるべくして起こった例外』と位置付け、システムテストまででなるべく起こしておく。

あくまで私見ですが、今日のところは上記のように考えました。