我正在开发一个rake系统,我有一些新代码需要进行一些一致性检查。我希望代码不会在第一个错误时退出;我希望它继续完成对其余数据的检查。如果确实遇到了一致性错误,则可能会抛出异常。我试图使用一个简单的构造来捕获RuntimeError:
begin
<code which may throw RuntimeError...>
rescue RuntimeError => e
<print info about exception ...>
end
这似乎执行救援块;打印出来的救援错误信息。问题是rake仍然中止,即使已经捕获并处理了异常。在rake中有一些设置将abort_on_exception设置为true吗?你有什么办法改变这个吗?我不希望它在此异常中止,我只是希望打印错误,并继续其余的检查。如果完整一致性检查报告错误,它将在更高级别退出。也许我需要抛出RuntimeError以外的东西?我只是使用带字符串参数的raise。
答案 0 :(得分:0)
您可以尝试使用Exception而不是RuntimeError异常
begin
<code which may throw RuntimeError...>
rescue Exception => e
p e.message
p e.backtrace
end