JS常見錯誤(Error)及處理方案詳解
阿新 • • 發佈:2020-07-05
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) } // 可以繼續向下執行 console.log('出錯之後')
(2)丟擲錯誤
function something() { if (Date.now() % 2 === 1 ){ console.log('當前時間為奇數,可執行任務') } else { throw new Error('當前時間為偶數無法執行任務') } } //情況1 直接呼叫 something() //Error: 當前時間為偶數無法執行任務 console.log('something之後') //不會繼續這句程式碼(沒有對異常進行處理) //情況2 捕獲處理異常 try { something() } catch(error) { console.log(error.message) }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。