ruby - 当出现错误时我怎么能做某事(例如:NameError)

时间:2014-07-10 13:23:15

标签: ruby

我在退出或退出时设法做“某事”(比如删除文件等)!从Object调用。 通过更改方法退出并退出!在Object类中。 (at_exit太不可靠了)

但是如果出现NameError等错误,那么“某事”就永远不会执行。

是否有办法,所以如果出现错误,我可以制作仍然执行的“东西”。 (必要时可能出现任何错误)。

类似at_exit,但适用于所有错误

提前感谢您的帮助。并原谅我,如果已经有问题要求这个。 在问这里之前我经常搜索。一无所获。

编辑:我不知道代码的原始作者放置方法的位置。因为原作者从作者用于启动器的exe程序中的dll文件加载它。 (我只能在原始代码发生后进行编辑......)。所以我认为我需要另一种方法...但我设法解决我的问题...通过在其他地方发送数据到原始对象的开始救援。我过滤数据发送并在它到达主程序之前抛出我自己的错误...所以我想这也有效。

1 个答案:

答案 0 :(得分:1)

借用不同主题的答案,并且明确地按照Marek所评论的方式,这就是你应该如何处理Ruby中的错误:

begin
  # something which might raise an exception
rescue SomeExceptionClass => some_variable
  # code that deals with some exception
rescue SomeOtherException => some_other_variable
  # code that deals with some other exception
else
  # code that runs only if *no* exception was raised
ensure
  # ensure that this code always runs, no matter what
end

原始信用:Begin, Rescue and Ensure in Ruby?