JS常見錯誤(Error)及處理方案詳解
1. 錯誤的類型
Error: 所有錯誤的父類型
錯誤的子類型包括:
- ReferenceError: 引用的變量不存在
- TypeError: 數據類型不正確的錯誤
- RangeError: 數據值不在其所允許的范圍內
- SyntaxError: 語法錯誤
常見的內置錯誤:
(1)ReferenceError: 引用變量不存在
console.log(a) //ReferenceError: a is not defined
(2)TypeError: 數據類型不正確
var b = {}
b.xxx() //TypeError: b.xxx is not a function
(3)RangeError: 數據值不在其所允許的范圍內
function fn(){
fn()
}
fn() //RangeError: Maximum call stack size exceeded
(4)SyntaxError: 語法錯誤
const c = """" //SyntaxError: Unexpected string
2. 錯誤處理
捕獲錯誤: try ... catch
拋出錯誤: throw error
(1)捕獲錯誤
try {
let d
console.log(d.xxx)
} catch (error) { //可以通過調試查看error對象的屬性(message屬性: 錯誤相關信息;stack屬性: 函數調用棧記錄信息)
console.log(error.message)
//console.log(error.stack)
}
// 可以繼續(xù)向下執(zhí)行
console.log('出錯之后')
(2)拋出錯誤
function something() {
if (Date.now() % 2 === 1 ){
console.log('當前時間為奇數,可執(zhí)行任務')
} else {
throw new Error('當前時間為偶數無法執(zhí)行任務')
}
}
//情況1 直接調用
something() //Error: 當前時間為偶數無法執(zhí)行任務
console.log('something之后') //不會繼續(xù)這句代碼(沒有對異常進行處理)
//情況2 捕獲處理異常
try {
something()
} catch(error) {
console.log(error.message)
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
大家在開發(fā)JavaScript應用的時候,如果遇到這種大量節(jié)點的情況,不妨將DocumentFragment作為一個備選的方案。2010-06-06
js老生常談之this,constructor ,prototype全面解析
下面小編就為大家?guī)硪黄猨s老生常談之this,constructor ,prototype。小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-04-04

