前提条件
検証バージョン: Ruby2.6.1
結論
できる
検証用のメソッド
raiseでエラーを発生させ、rescueでエラーキャッチしたその中でまたエラーを発生してrescueでキャッチしている
def method
p 'init'
begin
raise "first error"
rescue
p "first rescue"
begin
raise 'second error'
rescue
p 'second rescue'
end
end
end
実行結果
> method
"init"
"first rescue"
"second rescue"
このようにbeginを書かないでブロックを1段階外にrescueを書く方法もある
def method2
p 'init'
raise "first error"
rescue
p "first rescue"
begin
raise 'second error'
rescue
p 'second rescue'
end
end
実行結果
> method2
"init"
"first rescue"
"second rescue"