如何防止厨师在 ruby 代码上失败?
How prevent chef failure on ruby code?
有时 Chef 在下一个代码上失败(此代码不在块或任何资源中):
tmp = title.force_encoding("ISO-8859-1").encode("UTF-8")
title = tmp.encode('ISO8859-1').force_encoding('UTF-8')
我得到的错误:
NoMethodError
nil:NilClass
的未定义方法“force_encoding”
我的问题是如何最好地忽略任何代码错误并继续 运行 休息食谱,谢谢
你没有显示 title
的来源,所以我能说的最好的办法是将你的代码放在 ruby_block
资源中并使用 ignore_failure
属性 .您还可以将普通的 Ruby rescue
块用于命令式代码,但要注意它如何与资源交互(或者更确切地说,不与资源交互),请参阅 https://coderanger.net/two-pass/ 了解有关加载过程的一些详细信息厨师使用。
有时 Chef 在下一个代码上失败(此代码不在块或任何资源中):
tmp = title.force_encoding("ISO-8859-1").encode("UTF-8")
title = tmp.encode('ISO8859-1').force_encoding('UTF-8')
我得到的错误:
NoMethodError
nil:NilClass
的未定义方法“force_encoding”我的问题是如何最好地忽略任何代码错误并继续 运行 休息食谱,谢谢
你没有显示 title
的来源,所以我能说的最好的办法是将你的代码放在 ruby_block
资源中并使用 ignore_failure
属性 .您还可以将普通的 Ruby rescue
块用于命令式代码,但要注意它如何与资源交互(或者更确切地说,不与资源交互),请参阅 https://coderanger.net/two-pass/ 了解有关加载过程的一些详细信息厨师使用。