2.在JavaScript中抛出错误
throw new Error("Something bad happend")
不要做下面这个事情:
throw "message"
有些浏览器可能不会提示上述消息
3.抛出错误的好处
function getDvis(element) { if (element && element.getElementByTagName) { return element.getElementByTagName("div"); } else { throw new Error("getDivs() : Argument must be a DOM element."); } }
任何时候只要element不满足继续执行的条件,就会抛出一个错误明确陈述发生的问题。
抛出错误就像给自己留下为什么失败的便签。
4.何时抛出错误
需要判断最有可能引发错误的是什么。
在不能提前确定函数会被调用的地方的时候,最可能需要抛出错误(类似于jQuery)。
几个经验:
- 修复了一个很难调试的错误,抛出几个错误可以避免再次发生错误
- 希望[某些事情]不要发生的时候,抛出几个关于[某些事情]的错误
- 如果自己写的代码别人会使用,思考他们的使用方式,抛出对应的错误
5.try/catch语句
当try块中发生了错误,程序会直接跳到catch中,并传入一个错误对象。
应该try-catch还是throw:
- 错误应该只在程序深层中抛出
- try-catch在程序应用层使用
- catch里面不要什么都不写,要写处理错误的代码
6.错误类型
try { // 代码引发错误 } catch (ex) { if (ex instanceof TypeError) { // 处理 TypeError 错误 } else if (ex instanceof ReferenceError) { // 处理 ReferenceError 错误 } else { // 其他处理 } }
也可以自己创造自己的错误类型:
function MyError(message) { this.message = message; } MyError.prototype = new Error();
然后再稳稳的catch自己的错误:
try { // 代码引发错误 } catch (ex) { if (ex instanceof MyError) { // 处理自己的错误 } else { // 其他处理 } }
时间: 2024-10-11 00:54:50