Mozilla Rhino JavaScript 引擎的 Orchestrator 實作支援例外狀況處理,讓您能夠處理錯誤。您在指令碼中撰寫例外狀況處理常式時,必須採用下列準則。

  • 使用下列歐洲電腦製造商協會(ECMA) 的錯誤類型。使用 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
    }