今までなんとなくで例外を使っていましたが、達人プログラマーという書籍に一つの考え方があったのでメモ。
以下のような記述がありました。
「すべての例外ハンドラを除去しても、このプログラムは動作可能だろうか?」と自問してください。答えが「ノー」であれば、例外ではない状況下で例外が使われているはずです。
つまり、try-catch
文をなくしても基本的に動作可能であれば良し。
そうでないならば、普通に起こりえる状況に対しても例外で処理してしまっている(例外ではない状況で例外を使ってしまっている)。
具体的な例として、ファイルオープンの際にファイルが存在しなかった場合が挙げられています。
要約すると、
- ファイルが存在しないという状況が通常起こりえないのであれば、それは例外として処理すべき
- ファイルが存在しないという状況が普通に起こりえるのであれば、例外ではなくエラーとして処理しておくべき
というものです。