Ruby Tips!

RubyのTipsを紹介します

Rubyの例外処理

Rubyの例外処理はbegin-rescueで行う。

begin
  # 処理1
rescue
  # 処理2
else
  # 処理3
ensure
  # 処理4
end

begin節の処理1で例外が発生すると、rescue節の処理2が実行される。
begin節の処理1で例外が発生しなければ、else節の処理3が実行される。
例外が発生してもしなくてもensure節の処理4は必ず実行される。

rescue節には捕捉する例外クラスを指定することができる。
省略時のデフォルトの例外クラスはStandardErrorである。
以下はファイルアクセスに伴うIOExceptionをrescueする例である。

begin
  open('foo.txt'){|f| f.read }
rescue IOException => e
  puts 'File access was failed.'
end

メソッド等の定義中ではbegin-endを省略してrescue節とensure節を記述できる。
以下は同じ意味である。

def method
  begin
    # 処理1
  rescue
    # 処理2
  ensure
    # 処理3
  end
end
def method
  # 処理1
  rescue
    # 処理2
  ensure
    # 処理3
end