码迷,mamicode.com
首页 > 编程语言 > 详细

编写可维护的JavaScript-第10章-抛出自定义错误

时间:2016-07-21 18:07:09      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

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 {
        // 其他处理
    }
}

 

编写可维护的JavaScript-第10章-抛出自定义错误

标签:

原文地址:http://www.cnblogs.com/magicshow/p/5692498.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!