簡體   English   中英

Ruby從if-then-else開始搶救

[英]Ruby begin rescue end with if-then-else

我有點想將begin-rescue-end與if-else-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並向fn1返回true或false。 沒問題。

但是在開始塊中,如果引發異常,我只想打印“消息3”並結束程序,而不打印“消息1”。

任何指針,請。 謝謝。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM