Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

Ruby日記(rescue/例外処理)

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
★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?