gpt4 book ai didi

ruby-on-rails - Ruby 异常的语法

转载 作者:行者123 更新时间:2023-12-04 01:15:52 25 4
gpt4 key购买 nike

我正在尝试理解 Ruby 异常的语法。

我找到了这个例子:

begin
puts "Running with b=#{ b }"
exception_if(b)
puts "After possible exception"
rescue ArgumentError => e
puts "An error occured: #{ e }!"
ensure
puts "Always excuted, no matter what."
end

来源:Wiki-Books

“ArgumentError”是期望类型,rescue-branch 应该捕获它? “e”是引用变量?

我在吗?

然后我发现了这段代码,然后我就完全糊涂了:

begin
@product = Product.find(params[:id])
rescue => e
redirect_to root_path
end

箭头 (=>) 之前的第一部分在哪里?

谁能给我解释一下,这两个片段是什么意思?

最佳答案

编辑:第二个片段是在控制台中拯救作为StandardError实例的错误:

begin
raise NoMethodError
rescue => e
puts e.inspect
end
#<NoMethodError: NoMethodError>

异常对象被分配给e 变量。这也可以阅读

rescue StandardError => e

第一个片段最初是rescue-ing 一个特定的错误,如果出现另一种类型的错误,ensure block 将始终执行,然后退出该方法。

作为一般经验法则,您应该只捕获您的程序可以从中恢复的异常。如果程序遇到未知异常,则将其崩溃并修复问题。

关于ruby-on-rails - Ruby 异常的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63407072/

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