當代碼遇到意外問題時,JavaScript的慣用方式是通過異常處理這種情況。

創建異常

使用throw關鍵字創建異常:

throw value

其中value可以是任何JavaScript值,包括字符串、數字或對象。

當JavaScript執行這行代碼時,正常的程序流程被停止,控制權回到最近的異常處理器處。

處理異常

異常處理器是一個try/catch語句。

try塊中的代碼行中引發的任何異常都在相應的catch塊中處理:

try {
 // 代碼行
} catch (e) {

}

這個例子中的e是異常值。

您可以添加多個處理器,捕獲不同類型的錯誤。

finally

要完成此語句,JavaScript還有另一個語句叫作finally,其中包含的代碼無論程序流程如何,無論是否處理了異常,無論是否發生了異常,都會被執行:

try {
 // 代碼行
} catch (e) {

} finally {

}

您可以在沒有catch塊的情況下使用finally,作為在try塊中清理可能打開的任何資源(如文件或網絡請求)的一種方式:

try {
 // 代碼行
} finally {

}

嵌套的try

try塊可以嵌套,異常始終在最近的catch塊中處理:

try {
 // 代碼行

 try {
 // 其他代碼行
 } finally {
 // 其他代碼行
 }

} catch (e) {

}

如果在內部try中引發異常,則在外部catch塊中處理。