JS常見(jiàn)錯(cuò)誤(Error)及處理方案詳解
1. 錯(cuò)誤的類(lèi)型
Error: 所有錯(cuò)誤的父類(lèi)型
錯(cuò)誤的子類(lèi)型包括:
- ReferenceError: 引用的變量不存在
- TypeError: 數(shù)據(jù)類(lèi)型不正確的錯(cuò)誤
- RangeError: 數(shù)據(jù)值不在其所允許的范圍內(nèi)
- SyntaxError: 語(yǔ)法錯(cuò)誤
常見(jiàn)的內(nèi)置錯(cuò)誤:
(1)ReferenceError: 引用變量不存在
console.log(a) //ReferenceError: a is not defined
(2)TypeError: 數(shù)據(jù)類(lèi)型不正確
var b = {}
b.xxx() //TypeError: b.xxx is not a function
(3)RangeError: 數(shù)據(jù)值不在其所允許的范圍內(nèi)
function fn(){
fn()
}
fn() //RangeError: Maximum call stack size exceeded
(4)SyntaxError: 語(yǔ)法錯(cuò)誤
const c = """" //SyntaxError: Unexpected string
2. 錯(cuò)誤處理
捕獲錯(cuò)誤: try ... catch
拋出錯(cuò)誤: throw error
(1)捕獲錯(cuò)誤
try {
let d
console.log(d.xxx)
} catch (error) { //可以通過(guò)調(diào)試查看error對(duì)象的屬性(message屬性: 錯(cuò)誤相關(guān)信息;stack屬性: 函數(shù)調(diào)用棧記錄信息)
console.log(error.message)
//console.log(error.stack)
}
// 可以繼續(xù)向下執(zhí)行
console.log('出錯(cuò)之后')
(2)拋出錯(cuò)誤
function something() {
if (Date.now() % 2 === 1 ){
console.log('當(dāng)前時(shí)間為奇數(shù),可執(zhí)行任務(wù)')
} else {
throw new Error('當(dāng)前時(shí)間為偶數(shù)無(wú)法執(zhí)行任務(wù)')
}
}
//情況1 直接調(diào)用
something() //Error: 當(dāng)前時(shí)間為偶數(shù)無(wú)法執(zhí)行任務(wù)
console.log('something之后') //不會(huì)繼續(xù)這句代碼(沒(méi)有對(duì)異常進(jìn)行處理)
//情況2 捕獲處理異常
try {
something()
} catch(error) {
console.log(error.message)
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Js遍歷鍵值對(duì)形式對(duì)象或Map形式的方法
下面小編就為大家?guī)?lái)一篇Js遍歷鍵值對(duì)形式對(duì)象或Map形式的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
Bootstrap模態(tài)對(duì)話框中顯示動(dòng)態(tài)內(nèi)容的方法
今天小編就為大家分享一篇Bootstrap模態(tài)對(duì)話框中顯示動(dòng)態(tài)內(nèi)容的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
js實(shí)現(xiàn)最短的XML格式化工具實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)最短的XML格式化工具,實(shí)例分析了基于jquery-latest.js實(shí)現(xiàn)XML代碼格式化的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
js實(shí)現(xiàn)瀑布流的一種簡(jiǎn)單方法實(shí)例分享
現(xiàn)在說(shuō)瀑布流式布局似乎有點(diǎn)晚了,但是每一項(xiàng)技術(shù)都是向著“精”和“簡(jiǎn)”的方向在不斷發(fā)展,在發(fā)展到極致之前,需要一個(gè)相當(dāng)漫長(zhǎng)的過(guò)程,因此,從這個(gè)角度來(lái)說(shuō),當(dāng)瀑布流被應(yīng)用得越來(lái)越多的時(shí)候,反而更應(yīng)該討論它,討論如何將它改善2013-11-11
淺談jQuery異步對(duì)象(XMLHttpRequest)
文章淺顯易懂的將jQuery異步對(duì)象分為了5個(gè)步奏,非常有利于我們學(xué)習(xí)記憶,是篇相當(dāng)不錯(cuò)的學(xué)習(xí)jQuery異步對(duì)象的文章,這里推薦給大家。2014-11-11
xmlplus組件設(shè)計(jì)系列之文本框(TextBox)(3)
xmlplus 是一個(gè)JavaScript框架,用于快速開(kāi)發(fā)前后端項(xiàng)目。這篇文章主要介紹了xmlplus組件設(shè)計(jì)系列之文本框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
微信小程序?qū)崿F(xiàn)圓形進(jìn)度條動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)圓形進(jìn)度條動(dòng)畫(huà),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06

