AWS Lambdaでいろいろやっていて,LambdaではよくRubyを書く.でも仕事ではPerlメインなのでしばしば文法を忘れてしまうのでメモしておく.
rescue
begin # ここでなんか例外を送出する rescue => err # ここで拾うことができる end
rescueの箇所はrescue Net::HogeFugaError => errのようにエラーを指定して書くこともできる.
またエラーの型を指定する場合は多段にrescueすることができる.
当然ながら,begin .. rescue で守られるのはレキシカルな範囲に留まらず,その中から呼び出したどこかのメソッドで起こった例外も拾うことができる.
def f raise "error" end def g begin puts f() rescue => err puts "error occurred" end end g() # => error occurred