Mozilla Rhino JavaScript 엔진의 Orchestrator 구현은 오류를 처리할 수 있도록 예외 처리를 지원합니다. 스크립트에서 예외 처리기를 작성할 때 다음 지침을 사용해야 합니다.

  • 다음 ECMA(European Computer Manufacturers Association) 오류 유형을 사용합니다. Error를 플러그인 함수에서 반환되는 일반 예외 및 다음 특정 오류 유형으로 사용합니다.

    • TypeError

    • RangeError

    • EvalError

    • ReferenceError

    • URIError

    • SyntaxError

    다음 예제에서는 URIError 정의를 보여 줍니다.

    try { 
         ... 
            throw new URIError("VirtualMachine with ID 'vm-0056' 
                           not found on 'vcenter-test-1'") ; 
         ... 
    } catch ( e if e instanceof URIError ) { 
    
    }
  • 스크립트에서 인식하지 않는 모든 예외는 다음 예제와 같이 <type>:SPACE<human readable message> 형식의 단순한 문자열 개체여야 합니다.

    throw "ValidationError: The input parameter 'myParam' of type 'string' is too short."
    
  • 사용자가 읽을 수 있는 메시지를 가능한 한 명확하게 작성합니다.

  • 단순한 문자열 예외 유형 검사에서는 다음 패턴을 사용해야 합니다.

    try {
          throw "VMwareNoSpaceLeftOnDatastore: Datastore 'myDatastore' has no space left" ;
    } catch ( e if (typeof(e)=="string" && e.indexOf("VMwareNoSpaceLeftOnDatastore:") == 0) ) {
          System.log("No space left on device") ;
          // Do something useful here
    }
  • 단순한 문자열 예외 유형 검사에서는 워크플로의 스크립팅된 요소에서 다음 패턴을 사용해야 합니다.

    if (typeof(errorCode)=="string" 
          && errorCode.indexOf("VMwareNoSpaceLeftOnDatastore:") 
          == 0) {
          // Do something useful here
    }