在Rails中使用Ruby全局变量$!来处理异常

5
我正在尝试使用Ruby全局变量$!从我的Rails应用程序中访问最后一个异常消息,但是即使在调用该变量之前发生了多个异常,它也返回为nil。这在Rails中不起作用吗?还有其他访问引发的最后一个异常的方法吗?

这个似乎可以工作:0 / 0 rescue $! - sixty4bit
2个回答

5

0

我不确定为什么$!总是返回nil。正如我在上面的评论中所写的那样,0 / 0 rescue $!可以工作,但我似乎无法让它在任何其他情况下工作。

在Ruby程序中,您可以通过在rescue后使用=>来访问异常,例如:

[24] pry(main)> begin
[24] pry(main)*   undefined_variable
[24] pry(main)* rescue => e
[24] pry(main)*   puts e
[24] pry(main)* end
undefined local variable or method `undefined_variable' for main:Object
=> nil

谢谢 @sixty4bit。我能够在 rescue 中让它工作,但在其他任何地方都不能。就像你指出的那样,在其他任何地方它都会返回 nil。有没有办法在 rescue 之外检索最后一个异常? - Andrea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接