【发布时间】:2013-05-15 14:04:54
【问题描述】:
我有一个模块,我在其中执行项目的所有加密/解密任务。我想捕获此模块中发生的任何OpenSSL::Cipher::CipherError 异常,以便我可以处理它们。
是否可以做类似的事情
rescue_from OpenSSL::Cipher::CipherError, :with => :cipher_error
在模块内部?
【问题讨论】:
-
您是否将该模块包含在控制器中?
rescue_from只能在控制器内部使用,因此在普通的旧 ruby 对象中执行此类操作将包含一些非常肮脏的 hack。 -
啊,明白了。谢谢@shime
-
乐于助人。如果您想知道我所说的脏黑客是什么意思,请查看这里:simonecarletti.com/blog/2009/12/… - 我不喜欢在 Ruby 中执行此操作时的外观,并且似乎添加了不必要的混乱。在自己的方法中提取异常处理是提高代码信心的一种方法,这似乎最适合您的场景。在此处阅读更多信息:avdi.org/talks/confident-code-railsconf-2011
-
@shime 如果您愿意发表您的评论作为答案,我可以接受并关闭此问题。谢谢!
标签: ruby-on-rails ruby-on-rails-3 exception-handling rescue