gpt4 book ai didi

ruby - `rescue $!` 是如何工作的?

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:54 25 4
gpt4 key购买 nike

我知道全局变量 $! 包含最新的异常对象,但我对下面的语法感到困惑。谁能帮助我理解以下语法?

 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 $!

你要么得到这些行,要么得到错误(如果文件不存在,你没有权限等)。在任何情况下,执行都不会停止。

关于ruby - `rescue $!` 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14787300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com