>

다음 코드 구조가 있습니다 :

begin
  <block of code>
rescue Exception => e
  <block of code>
end

이것은 런타임 오류를 잡을 수 없으며 Chef 실행이 실패합니다.

셰프에서 런타임 중에 예외를 잡을 방법이 있습니까?


  • 답변 # 1

    이것은 수렴 시간이 아니라 컴파일 시간에만 예외를 포착합니다. Chef는 2 패스 로딩 모델 덕분에 본질적으로 비동기식입니다. https://coderanger.net/two-pass/에서 자세한 내용을 읽을 수 있습니다. 일반적으로 유일한 옵션은 ignore_errors 입니다  속성은 여전히 ​​불쾌한 오류 추적을 표시하지만 리소스 오류가 발생해도 실행을 중단하지 않습니다. 더 구체적으로 말하면 어떤 종류의 코드를 말해야하는지 알아야합니다. 가드 조건을 사용하고 싶을 수도 있습니다 ( not_if ) / only_if ) 문제가 발생하여 실패 할 경우 리소스 수렴을 방지합니다.

  • 이전 c# - FluentAssertions를 사용하여 CustomAssertion을 작성하는 방법
  • 다음 php - SSL 리디렉션 htaccess가 작동하지 않습니다