今天检查网页的时候因为一段Js报错 导致下面的js没有执行(一个js动态添加的弹窗没有出现)
原因是因为
一个属性本身是undefined 找不到 无法给他赋值
这里的原因很简单 也已经修改好了
但是这里我不禁思索 如果能提前避免这样的错误发生而导致不必要的损失岂不美哉?
好了try catch就为我们提供了这种捕捉未来可能发生的错误并提示 在你可能预测到此方法会报错像这样
try {
yourFn() ;//maybe errored
} catch (e) { console.log(e.name + ": " + e.message); }
otherFn() ;
这里就算是你的yourFnf方法报错也不会 影响下面代码的执行 就是这么easy!
下面介绍的是可能遇到的系统异常
- EvalError: raised when an error occurs executing code in eval() 当一个错误发生在()执行的代码
- RangeError: raised when a numeric variable or parameter is outside of its valid range 当一个数值变量或参数超出其有效范围时引发的
- ReferenceError: raised when de-referencing an invalid reference 无效的饮用
- SyntaxError: raised when a syntax error occurs while parsing code in eval() 当发生语法错误在()解析代码,而
- TypeError: raised when a variable or parameter is not a valid type 当一个变量或参数不是一个有效的类型时引发
- URIError: raised when encodeURI() or decodeURI() are passed invalid parameters 当encodeuri()或decodeuri()传递了无效的参数
上面的六种异常对象都继承自Error对象。他们都支持以下两种构造方法:
new Error(); new Error("异常信息");
这样手动抛出异常
try { throw new Error("Whoops!"); } catch (e) { alert(e.name + ": " + e.message); }