1. 程式人生 > 程式設計 >JS常見錯誤(Error)及處理方案詳解

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)
}
// 可以繼續向下執行
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)
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。