當代碼遇到意外問題時,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
塊中處理。