如果我使用begin ... rescue并且发生错误,是否仍会发生回滚?

时间:2010-04-16 18:09:01

标签: ruby-on-rails error-handling transactions

我的rails应用程序中发生了一些奇怪的错误,我正在尝试记录更好的错误,而不是我不关心的整个堆栈乘客。我以为我会使用Rescue子句和显式错误处理来执行此操作,例如记录params哈希。但是我担心这是否会中断正在发生的任何回滚。就此而言,我假设在正常的rails错误处理过程中发生错误时会自动发生回滚,但我无法在任何地方找到记录。我正在使用Dreamhost和MySQL,所以我认为交易和回滚都在那里发生。

1 个答案:

答案 0 :(得分:-1)

这不是很明智(对您的代码进行大规模的开始救援)。

为什么不使用回溯消音器? (来自Rails 2.3) http://afreshcup.com/home/2008/11/29/rails-23-backtrace-silencing.html

来自release notes

  

Rails会自动添加消音器   摆脱一个最常见的噪音   新的应用程序,并构建一个   config / backtrace_silencers.rb文件到   保留你自己的补充

如果您使用的是早期版本的Rails,请使用http://github.com/thoughtbot/quietbacktrace