【发布时间】:2013-07-02 19:16:33
【问题描述】:
我正在开发一个 rake 系统,我有一些新代码需要做一些一致性检查。我希望代码不会在第一个错误时退出;我希望它继续完成对其余数据的检查。如果它确实遇到一致性错误,它可能会引发异常。我正在尝试使用一个简单的构造来捕获 RuntimeError:
begin
<code which may throw RuntimeError...>
rescue RuntimeError => e
<print info about exception ...>
end
这似乎执行了救援块;打印救援的错误信息。问题是 rake 仍然中止,即使异常已被捕获和处理。 rake 中是否有一些设置将 abort_on_exception 设置为 true?有什么办法改变这个吗?我不希望它在这个异常上中止,我只想打印错误,并继续进行其余的检查。如果完整的一致性检查报告错误,它将退出更高级别。也许我需要抛出 RuntimeError 以外的东西?我只是将 raise 与字符串参数一起使用。
【问题讨论】:
-
RuntimeError在发生未分类的异常时引发。如果将rescue RuntimeError => e替换为rescue => e会发生什么?