含義:
try語句允許我們定義在執(zhí)行時進(jìn)行錯誤測試的代碼塊。
catch語句允許我們定義當(dāng) try 代碼塊發(fā)生錯誤時,所執(zhí)行的代碼塊。
作用:
為了防止代碼報錯,影響后續(xù)程序代碼的使用。
在try里面發(fā)生的錯誤,不會執(zhí)行錯誤后的try里面的代碼。
catch 補(bǔ)抓錯誤信息。
try{ // 在try里面發(fā)生的錯誤,不會執(zhí)行錯誤后的try里面的代碼。
console.log('a'); // 執(zhí)行
console.log(c); // 不執(zhí)行
console.log('b'); // 不執(zhí)行
}catch(e) {
}
console.log('d'); // 執(zhí)行
捕獲錯誤信息:
try{
console.log('a'); // 執(zhí)行
console.log(c); // 不執(zhí)行
console.log('b'); // 不執(zhí)行
}catch(e) { // 包括兩個信息。message name
// 如果try不發(fā)生錯誤,catch就不執(zhí)行。
console.log(e.message + ':' + e.name);
}
console.log('d'); // 執(zhí)行
錯誤信息
Error.name的六種值對應(yīng)的信息:(重要)
1. EvalError: eval()的使用與定義不一致 ---》 不常見
eval 不允許使用
2. RangeError: 數(shù)值越界 ---》 少見
3. ReferenceError: 非法或不能識別的引用數(shù)值 ---》 最常見
當(dāng)一個變量未經(jīng)聲明就使用,當(dāng)一個函數(shù)未經(jīng)聲明就調(diào)用。一系列的東西未經(jīng)聲明就使用。
4. SyntaxError: 發(fā)生語法解析錯誤 ---》 最常見
符號等的錯誤。
5. TypeError: 操作數(shù)類型錯誤
6. URIError: URI處理函數(shù)使用不當(dāng) ---》 地址發(fā)生錯誤