ここには、Ruby の例外処理についてメモしていく。
普通の処理は、begin ~ rescue ~ end でくくっておくと、エラーが起きたときの対処ができる。
begin
処理
rescue
エラーが起きたときの処理
end
rescue は複数指定することができて、一つ目がだめなら二つ目、というように行くはず。
あと、else で特定の例外処理に当てはまらない場合の処理を書き、ensure で結果がどうであれ必ず実行する処理を入れられる。
発生した例外をとらえるには、rescue に => (evar) を付けて、e そこに読み込むか、$! に読み込まれるので、それを使う。
begin
処理
rescue => e
p e
p $!
end
rescue は通常のエラーを捕まえるが、それ以外のときは、error_type をrescue の後に指定する。
require '...' でファイルを読み込もうとしたときなどには、LoadError を指定して次のようになる。
begin
require '...'
rescue LoadError
処理
end