当前位置:  开发笔记 > 后端 > 正文

如何在模型中拯救异常?

如何解决《如何在模型中拯救异常?》经验,为你挑选了1个好方法。

在Rails中.

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

如何在模型中拯救异常?



1> Mike Trpcic..:

你可以在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!"

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


一般我同意,但我不同意你的第一个代码块.你不应该直接使用"救援异常",因为它甚至会拯救试图杀死进程的信号.除非你真的想确保你想让这部分代码免于被彻底杀死,否则坚持使用Ruby的默认行为是有充分理由的.因此,通常更好的做法是使用vanilla"rescue"并让您的自定义错误类派生自StandardError.
小修正:你的第二个代码片段中有一个双重"加注".但是答案很好.
推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有