簡體   English   中英

如何`救援$!`工作?

[英]How does `rescue $!` work?

我知道全局變量$! 擁有最新的異常對象,但我對下面的語法感到困惑。 任何人都可以幫我理解以下語法嗎?

 rescue $!

此構造可防止異常停止程序並使堆棧跟蹤冒泡。 它還將該異常作為值返回,這可能很有用。

a = get_me_data rescue $!

在此行之后, a將保存請求的數據或異常。 然后,您可以分析該異常並采取相應措施。

def get_me_data
  raise 'No data for you'
end

a = get_me_data rescue $!
puts "Execution carries on"

p a
# >> Execution carries on
# >> #<RuntimeError: No data for you>

更現實的例子

lines = File.readlines(filename) rescue $!

您要么獲取行或錯誤(如果文件不存在,您沒有權限等)。 無論如何,執行不會停止。

暫無
暫無

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

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