## 错误与异常是什么
错误,指程序中的非正常运行状态,在其他编写语言中被称为“异常”或“错误”。解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息。
通过使用JavaScript提供的异常处理语句,可以用结构化的方式来捕捉发生的错误,让异常处理代码与核心业务代码实现分离。
错误与异常处理在应用中的重要性是毋庸置疑的。任何有影响力的Web应用都需要一套完善的错误处理机制。
## try...catch语句
try...catch语句作为JavaScript中处理异常的一种标准方式。try语句标记一块待尝试的语句,如果该语句出现错误,则通过catch语句进行捕获。
基本语法:
try:{
//可能会导致错误的代码
}catch/*捕捉块*/(error){
//在错误发生时的处理
}
在JavaScript执行过程中如果抛出错误,错误往上冒泡,直到被捕获处理为止。如果错误被处理,则程序可以跳过错误段继续执行,否则程序退出执行,进程结束。
代码:
不捕获异常:
function aa() {
console.log(v);
console.log(666);
}
执行函数aa()输出报错信息,后面终止执行: Uncaught ReferenceError: v is not defined
捕获异常:
function aa() {
try {
throw new Error("提示文字");
console.log(333)
} catch (error) {
console.log('出错了')
}
console.log(666)
}
执行函数aa()输出: 出错了 666,异常被捕获后跳过错误代码段继续执行。
一、概念
error,指程序中的非正常运行状态,在其他编程语言中称为“异常”或“错误”。解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息。
ECMAScript定义了六种类型的错误。除此之外,还可以使用Error构造方法创建自定义的Error对象,并使用throw语句抛出该对象。
六种错误:
ReferenceError:找不到对象时
TypeError:错误的使用了类型或对象的方法时
RangeError:使用内置对象的方法时,参数超范围
SyntaxError:语法写错了
EvalError:错误的使用了Eval
URIError:URI错误
二、错误处理
即使程序发生错误,也保证不异常中断的机制。
try{
可能发生错误的代码
}catch(err){
只有发生错误时才执行的代码
}finally{
无论是否出错,肯定都要执行的代码
}
使用要点:
使用try包裹的代码,即使不出错,效率也比不用try包裹的代码低;
在try中,尽量少的包含可能出错的代码;
无法提前预知错误类型的错误,必须用try catch捕获;
finally可以省略;
三、抛出自定义错误
何时:如果是函数的定义者,需要告知调用者使用过程中的错误;
如何:throw new Error("提示文字");