我正在尝试使用Ruby全局变量$!从我的Rails应用程序中访问最后一个异常消息,但是即使在调用该变量之前发生了多个异常,它也返回为nil。这在Rails中不起作用吗?还有其他访问引发的最后一个异常的方法吗?
https://www.honeybadger.io/blog/working-with-ruby-exceptions-outside-of-the-rescue-block/
这意味着在类似IRB的shell中,$!没有什么用处。通常在IRB中运行方法时会出现异常。有时我想获得该异常对象。但是$!不能实现这一点。我不确定为什么$!
总是返回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
0 / 0 rescue $!
。 - sixty4bit