错误处理
错误(bug): 在程序执行过程中造成异常中断的原因
发生错误: 程序会中断退出
错误处理: 即使发生错误,也能保证程序不异常中断的机制
try{
可能出错的代码; //一旦出错,会自动创建err对象
}catch(err){//只在出错时才执行
错误处理代码: 1. 记录日志, 2. 提示用户
}finally{
无论是否发生错误,都必须执行的代码: 释放资源
}
错误处理中的return:
1、finally中的return,会替换try catch中的return
2、即使finally中没有return,finally中的代码一定会在return前执行。但无法影响已确定的return结果
关于效率
问题: 放入try...catch...中代码的效率会比外部代码降低。
解决: 如果错误是可以提前预知的,可用if else来代替try catch
Error对象
在发生错误时,自动创建的,封装错误信息的对象
包括6类:
SyntaxError: 语法错误
ReferenceError: 引用错误 要用的变量未找到时
TypeError: 类型错误
错误的使用了类型
错误的调用了类型的方法
RangeError: 范围错误 参数超范围
URIError: URI错误
EvalError: Eval错误,错误的使用了eval函数
主动抛出错误
在框架级开发时,API要想保护自己,告诉调用者错误的使用的API,都要通过抛出自定义错误的方式
throw new Error("错误消息")