如何在模型中拯救异常?

时间:2009-08-24 02:22:19

标签: ruby-on-rails

在Rails中。

异常可以在控制器类中进行抢救,但在模型类中不能。

如何在模型中拯救异常?

2 个答案:

答案 0 :(得分:12)

你可以在rails应用程序的任何地方进行异常处理,因为它是Ruby的一部分,而不是Rails的一部分。无论您想要捕获哪些错误,只需将其包装为:

begin
  SomethingElse.doSomething(x, y)
rescue Exception
  ErrorLogger.log(Time.now, "Something went wrong!")
end

请注意,您应该始终“拯救例外”,而不仅仅是“救援”。只使用“rescue”只会捕获StandardError,它是Exception的一个子类(意味着可能会通过你不想通过的东西)。

与往常一样,您可以通过执行以下操作提升例外:

raise ArgumentError, "Illegal arguments!"

代码中的任何位置,无论是模型还是控制器。

答案 1 :(得分:1)

除非我弄错了,否则你可以在Ruby的任何地方使用错误处理。你想做什么?