我有以下代码结构:
begin
<block of code>
rescue Exception => e
<block of code>
end
这无法捕获运行时错误,而且Chef运行失败。
有没有办法在Chef的运行时捕获异常?
答案 0 :(得分:1)
这只会在编译时捕获异常,而不是收敛时间。由于我们的双通道加载模型,Chef本质上是异步的。您可以在https://coderanger.net/two-pass/了解更多相关信息。一般来说唯一的选择是ignore_errors
属性,虽然它仍然会显示一个讨厌的错误跟踪,它只是在资源出错时不会中止运行。更具体地说,您需要说出您正在谈论的代码类型。您可能希望使用保护条件(not_if
/ only_if
)以避免在出现问题时收敛资源并且它将失败。