【发布时间】:2020-08-26 12:15:34
【问题描述】:
是否可以在 ruby on rails 中将多个救援语句合并为一个。
begin
//do something
rescue ArgumentError => e
e.message
rescue NameError => e
e.message
rescue StandardError => e
e.message
end
结合到下面的东西
rescue ArgumentError, NameError, StandardError => e
e.message
【问题讨论】:
-
是的,和你的假设
rescue ArgumentError, NameError, StandardError => e完全一样。您是否尝试过运行它并遇到您想要询问的某种问题? -
@SimpleLime - 我试过了,但不确定异常的顺序在这里是否重要。
-
当您有多个救援块(您的第一个代码块)时,顺序很重要,因为一旦匹配,您就会执行该块并完成,因此您希望在更通用的父类之上有更具体的子类。当将它们移动到单行(一个救援块)时,顺序无关紧要:只能引发一个异常,如果它们匹配,它们都会汇集到该块中)
标签: ruby-on-rails ruby ruby-on-rails-3