7、異常處理與調試
7.1 異常處理
7.1.1 try/catch語句
try/catch語句常用於處理JavaScript中的異常,其基本語法如下所示:
try {
// 可能出錯的代碼
} catch(error){
// 出錯後,需要做的事
} finally{
// 不管怎樣,都要運行的語句
}
如果try塊中有代碼發生錯誤,則立即退出執行,並跳到catch塊中,此時catch會接收到一個對象,該對象包含發生錯誤的相關信息。在catch塊中不使用錯誤對象,也必須爲它定義名稱,其包含一個message屬性。
示例代碼如下所示:
let a=12;
try {
a/b
} catch (error) {
console.error(`An error happend,please check,detail message is ${error.message}`); // An error happend,please check,detail message is b is not defined
} finally{
console.log("run finally ");
}
再來看看以下代碼,返回值是多少?
function testTryCatchFinally(){
try {
return 0;
} catch (error) {
return 1;
} finally{
return 2;
}
}
console.log(`return value is ${testTryCatchFinally()}`); // return value is 2
在上面語句中,finally中的return返回會覆蓋try中的return語句。
常見的錯誤類型如下所示:
- Error
- InternalError
- EvalError
- RangeError
- ReferenceError
- SyntaxError
- TypeError
- URIError
7.1.2 拋出錯誤
與try/catch 語句對應的一個機制是throw 操作符,用於在任何時候拋出自定義錯誤,throw 操作符必須有一個值,但值的類型不限。以下爲示例:
throw "error"
throw 123
throw {"name":"Surpass"}
throw [1,2,3,4]
throw new Error("abc")
使用throw時,代碼會立即停止運行。
7.2 調試
JavaScript用於調試的方法比較多,這裏僅介紹把消息記錄到控制檯。所有主流瀏覽器都有JavaScript控制檯,可用於查詢JavaScript錯誤,也支持通過console對象直接把JavaScript消息寫入控制檯,主要包含以下方法:
- error(message):在控制檯中記錄錯誤消息。
- info(message):在控制檯中記錄信息性內容。
- log(message):在控制檯記錄常規消息。
- warn(message):在控制檯中記錄警告消息。
原文地址:https://www.jianshu.com/p/4436750c806e
本文同步在微信訂閱號上發佈,如各位小夥伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼添加關注: