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