2013-10-16 68 views
0

我是堅持使用開始救援結束與if-else-end。請參閱下面的代碼片段。紅寶石開始救援結束與if-then-else

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 

在開始塊,如果沒有引發異常,那麼如果其他將得到執行,並返回true或false來FN1。這沒有問題。

但是在開始塊中,如果出現異常,我只想打印「消息3」並結束程序,而不打印「消息1」。

任何指針請。謝謝。

回答

1

如果要終止程序(而不是從fn2?剛回來),你可以使用Kernel#exit,例如:

begin 
    <do action> 
rescue 
    <handle error here> 
    puts "Message 3" 
    exit(1) 
end