[英]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.