JavaScript 异常处理

try catch

JavaScript 同样的内置了 try catch 这套现代的 异常处理机制,很方便我们在编程中,提前对那些有可能遇见到的错误进行处理。

try { // 尝试执行
 b = a + 1
} catch (e) { // 出现错误,对错误进行捕获 
 console.log('当前错误信息:' + e.message)
} 

finally

try catch 语法的补充。

try { 

} catch (e) { 

} finally {
 console.log(1) // 无论 try 成功还是失败,finally 都会被执行
}

错误类型

通过 catch 捕获到的错误,是有多种类型的,每种类型描述了相应的错误问题。

try { 
  b = a + 1
} catch (e) { 
 console.log(e instanceof Error) // true
 console.log(e instanceof ReferenceError) // true | 引用错误
 console.log(e instanceof SyntaxError) // false | 语法错误
} 

/* 
所有错误类型都是 Error 的派生类
Error
 +-- SyntaxError
 +-- ReferenceError
 +-- RangeError
 +-- TypeError
 +-- URIError
 +-- EvalError
*/

抛出

我们也能自定义错误,然后让解释器报错。

try { 
 throw new TypeError('1') // 抛出一个类型错误
} catch (e) { 
 console.log(e) // 捕获 | TypeError: 1
} 

异步与错误

catch 没办法捕获到异步执行抛出的错误。

try {
 setTimeout(() => {
  throw new Error('1')
 }, 1000)
} catch (e) {
 // 无法捕获 new Error('1')
}
JavaScript 教程 JavaScript 运行 JavaScript 迭代 JavaScript 异常处理 JavaScript 事件