× 歡迎來到我們討論區!

說說你是何許人也,來自何方,有什麼喜好,為什麼加入這個討論區。
歡迎所有的新會員!同時希望在這裡經常見到你!

Javascript try...catch 語法

2 星期 3 天 ago - 2 星期 3 天 ago #2 來自 admin


try...catch 語法

區段try...catch 語法標記出一整塊需要測試的語句,並指定一個以上的回應方法,萬一有例外拋出時,try...catch 語句就會捕捉。

try...catch 語法由 try 區塊所組成,其中內含一個以上的語句,和零個以上的 catch 區塊,其中內含語句用來指明當例外在 try 區塊裡拋出時要做些什麼。也就是當你希望 try 區塊成功,但如果他不成功時,你會想要把控制權移交給 catch 區塊。如果任何在 try 區塊內部裡的語句(或者在 try 區塊內部呼叫的函數裡)拋出例外,控制權將立即轉移給 catch 區塊。如果沒有例外從 try 區塊裡拋出,就會跳過 catch 區塊。finally 區塊會在 try 或 catch 區塊執行之後才執行,但會在 try...catch 語法後面的語句之前執行。

以下範例使用 try...catch 語法。本範例呼叫函數,這個函數是用來在陣列裡根據傳給函數的值來查詢月份的名稱。如果傳入的值不符合月份的數字 (1-12),就會拋出值為 InvalidMonthNo 的例外,而且在 catch 區塊裡的語句會把 monthName 變數設定為 unknown。

function getMonthName (mo) {    mo=mo-1; // 針對陣列索引調整月份的數字 (1=Jan, 12=Dec)
    var months=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul",
          "Aug","Sep","Oct","Nov","Dec");
    if (months[mo] != null) {
       return months[mo]
    } else {
       throw "InvalidMonthNo"
    }
}


try {
// 需要測試的語句
    monthName=getMonthName(myMonth) // 可拋出例外的函數
}
catch (e) {
    monthName="unknown"
    logMyErrors(e) // 把例外物件傳給錯誤處理器
}
附件:

Please 登入新增帳號 to join the conversation.

建立頁面時間:0.222 秒
Copyright © 2018 ucamc