投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/8/18 14:32:31
たとえば、「0で除算」や「配列のインデックスに範囲外の値を指定」、「型変換エラー」などの
例外は、Catch するべきでは無いとされます。これらは、そういう処理が行われていること自体が
問題であると言えますので(バグと言えます)、むしろそういう例外が発生することがないよう、
値の事前チェックを行うなど、コードを書きなおすことで対応するべきです。

一方、「ディスクがいっぱいで保存できない」「ダウンロード先のサーバーと通信できなかった」等の
例外というのは、実行してみないと検出できない処理ですので、これらは積極的に Catch すべきです。
(ディスクの空き容量を調べてから保存するといった対処方法を取ることはできますが、
 調べてから実際に保存するまでの僅かな間に、ディスク容量やアクセス権が変化する可能性も
 ありますので、これらについては事前チェックすれば済むということにはなりません)

そういう意味においては、無暗やたらと  On Error や Catch すべきではありませんし、
かといって、まったく例外処理を行わないというのもまた問題ですね。