JavaScript 异常 Exceptions

JavaScript提供了一套异常处理机制。 异常是干扰程序的正常流程的不寻常(但并非完全是出乎意料的)的事故。 当发现这样的事故时,你的程序应该抛出一个异常。

throw语句中断函数的执行。 它应该抛出一个exception对象,该对象包含一个用来识别异常类型的 name 属性和一个描述性的 message 属性。 你也可以添加其他的属性。

该exception对象将会被传递到一个try语句的catch从句。

如果在try代码块内抛出了一个异常,控制权会跳转到它的catch从句。 一个try语句只会有一个捕获所有异常的catch代码块。 如果你的处理手段取决于异常的类型,那么异常处理器必须检查异常对象的name属性来确定异常的类型。 — 《JavaScript语言精粹》


function say(msg) {
    if (typeof msg != "string") {
        throw {
            name: "TypeError",
            message: "need string",
            remedy: function() {
                alert(this.message);
            }
        }
    }
    alert(msg);
}

try {
    say(100);
} catch(e) {
    e.remedy();
}
posted @ 2013-11-07 18:05  木头小木头  阅读(387)  评论(0编辑  收藏  举报