今日見つけたコード
なんだこのrescueと思ったら、
def foo # 処理 rescue LoadError # なんだこれ end
メソッド定義の一部でした。こういう書き方もできるのかー。
def foo puts "start" raise "test" puts "end" rescue puts "rescue" ensure puts "ensure" end foo
実行結果です。
start rescue ensure
クラスやモジュールの定義でも使えます。
#クラス定義 class Hoge puts "class start" raise "test" puts "class end" rescue puts "class rescue" ensure puts "class ensure" end #モジュール定義 module Var puts "module start" raise "test" puts "module end" rescue puts "module rescue" ensure puts "module ensure" end
実行結果です。
class start class rescue class ensure module start module rescue module ensure