共用方式為


try...catch...finally 陳述式

更新:2007 年 11 月

實作 Jscript 的錯誤處理。

 try {    [tryStatements] } catch(exception) {    [catchStatements] } finally {    [finallyStatements]}

引數

  • tryStatements
    選擇項。發生錯誤的陳述式。

  • exception
    必要項。任何變數名稱。exception 的初始值就是發生的錯誤值。

  • catchStatements
    選擇項。用來處理在關聯的 tryStatement 發生之錯誤的陳述式。

  • finallyStatements
    選擇項。在所有錯誤發生之後,會無條件執行的陳述式。

備註

對於可能在特定程式碼區塊中發生的某些或所有錯誤,try...catch...finally 陳述式提供了處理方式,同時可繼續執行程式碼。如果發生程式設計人員沒有處理過的錯誤,JScript 只會將一般的錯誤訊息提供給使用者,當做不進行錯誤處理。

tryStatements 包含可能發生錯誤的程式碼,而 catchStatements 則包含用來處理確實發生錯誤的程式碼。如果 tryStatements 中發生錯誤,則程式控制權會轉移給 catchStatements 處理。exception 的初始值就是在 tryStatements 中發生的錯誤值。如果沒有錯誤發生,就不會執行 catchStatements。

當發生錯誤時,如果與 tryStatements 相關的 catchStatements 無法處理這個錯誤,請用 throw 陳述式來傳送錯誤,或是將錯誤送至更高階的錯誤處理程式。

tryStatements 中的所有陳述式執行後,並且 catchStatements 中產生任何錯誤處理時,finallyStatements 中的陳述式會無條件執行。

請注意,即使 trycatch 區塊中發生傳回陳述式,或從 catch 區塊中擲出錯誤,仍會執行 finallyStatements 內的程式碼。finallyStatments 保證會永遠執行。

範例

以下範例說明 Jscript 例外處理如何運作。

try {
   print("Outer try running...");
   try {
      print("Nested try running...");
      throw "an error";
   } catch(e) {
      print("Nested catch caught " + e);
      throw e + " re-thrown";
   } finally {
      print("Nested finally is running...");
   }
} catch(e) {
   print("Outer catch caught " + e);
} finally {
   print("Outer finally running");
}

此程序產生以下輸出:

Outer try running..
Nested try running...
Nested catch caught an error
Nested finally is running...
Outer catch caught an error re-thrown
Outer finally running

需求

5 版

請參閱

參考

throw 陳述式

Error 物件