即使获得了异常,rake仍会在RuntimeError上中止

时间:2013-07-02 19:16:34

标签: ruby exception rake

我正在开发一个rake系统,我有一些新代码需要进行一些一致性检查。我希望代码不会在第一个错误时退出;我希望它继续完成对其余数据的检查。如果确实遇到了一致性错误,则可能会抛出异常。我试图使用一个简单的构造来捕获RuntimeError:

 begin
      <code which may throw RuntimeError...>
 rescue RuntimeError => e
      <print info about exception ...>
 end

这似乎执行救援块;打印出来的救援错误信息。问题是rake仍然中止,即使已经捕获并处理了异常。在rake中有一些设置将abort_on_exception设置为true吗?你有什么办法改变这个吗?我不希望它在此异常中止,我只是希望打印错误,并继续其余的检查。如果完整一致性检查报告错误,它将在更高级别退出。也许我需要抛出RuntimeError以外的东西?我只是使用带字符串参数的raise。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Exception而不是RuntimeError异常

begin
  <code which may throw RuntimeError...>
rescue Exception => e
  p e.message
  p e.backtrace
end