Ruby 例外キャッチのバッドノウハウ

きっかけ

以下のような例外キャッチをRubyで記述したことはないだろうか.

1
2
3
4
5
6
7
for i in 0..100
  for j in 0..100
    if i / j == 0
      puts "pass"
    end rescue "error"
  end
end

今回発生しうる例外はZeroDivisionErrorなので推測はし易いが 条件を変えて複数の例外をキャッチした場合には何の例外がキャッチされるかが不明なのでよろしくない. (意図しない例外をキャッチしても気づかない)

まとめ

したがって,以下のように記述するのが懸命(と考えた)