我很喜欢使用if-else-end的begin-rescue-end。请参阅下面的代码段。
def fn1
unless fn2?
puts "Message 1"
return
end
puts "Message 2"
end
def fn2?
begin
<do action>
rescue
<handle error here>
puts "Message 3"
return
end
if <condition>
puts "Message 4"
return true
else
puts "Message 5"
return false
end
end
在begin块中,如果没有引发异常,则if-else将被执行并返回true或false给fn1。没问题。
但是在开始块中,如果出现异常,我想打印“消息3”并结束程序,而不打印“消息1”。
请指点。感谢。
答案 0 :(得分:1)
如果您要终止该计划(而不是仅从fn2?
返回),您可以使用Kernel#exit,例如:
begin
<do action>
rescue
<handle error here>
puts "Message 3"
exit(1)
end