JavaScript异常处理简介

程序运行过程中难免会出错,出错后的运行结果往往是不正确的,因此运行时出错的程序通常被强制中止。运行时的错误统称为异常,为了能在错误发生时得到一个处理的机会,JavaScript提供了异常处理语句。包含try-catch、try-catch-finally和throw。

程序运行过程中难免会出错,出错后的运行结果往往是不正确的,因此运行时出错的程序通常被强制中止。运行时的错误统称为异常,为了能在错误发生时得到一个处理的机会,JavaScript提供了异常处理语句。包含try-catch、try-catch-finally和throw.

try{
    必选项。可能发生错误的语句序列。
}catch( exception /* 必选项。任何变量名,用于引用错误发生时的错误对象。*/ ){
    可选项。错误处理语句,用于处理发生的错误。
}

编码的时候通常将可能发生错误的语句写入try块的花括号中,并在其后的catch块中处理错误。错误信息包含在一个错误对象(Error对象)里,通过exception的引用可以访问该对象。根据错误对象中的错误信息以确定如果处理。

try{
    var n = t; // 人为引发一个错误,t未定义就使用
}catch(e){
    alert(e.number + "号错误:" + e.description); // 错误处理:仅输出错误信息
}

提示:JavaScript的错误为运行时错误和语法错误,语法错误在编译阶段发现;而运行时错误在运行过程中发现,错误处理语句仅能处理运行时错误。

try-catch-finally语句

try{
    必选项,可能引发异常的语句。
}catch( exception ){
    可选项,异常处理语句。
}finally{
    可选项,在其他过程执行结束后无条件执行的语句。
}

尽管没有错误发生finally块中的语句也会在最后得到执行,通常在此放置资源清理的程序代码。遍历一个有苹果名称的数组时人为引发一个异常。

try{
    var fruit = new Array("鸭梨","苹果","葡萄","李子");
    for( n=0; n<fruit.length; m++){
        document.write(fruit[n] + "");
    }
}catch( e ){
    alert( e.number + "号错误:" + e.description );
} finally {
    fruit = null;
    alert("fruit="+fruit+"已经断开fruit数组的引用!");
}

throw语句

多个异常处理语句可以嵌套使用。当多个结构嵌套时,处于里层try-catch语句不打算自己处理异常则可以将其抛出。父级try-catch语句可以接收到子级抛出的异常,抛出操作使用throw语句。

表达式的值是作为错误信息对象传出,该对象将被catch语句捕获。throw语句可以使用在打算抛出异常的任意地方。通常情况下0不能作为除数,因此可以为除数为0定义一个异常并抛出。

try{
    var dividend = 100; // 被除数
    var parts = 0; // 除数
    if( parts == 0) { // 如果除数为0则抛出异常
        throw "Error:parts is zero"; //抛出异常
    }
    alert("每人" + dividend/parts + "份"); //输出提示信息
} catch(e) { //此处将捕获try块中抛出的异常
    alert(e); //用对话框输出错误对象的信息
}
一寸光阴一寸金,寸金难买寸光阴。——《增广贤文》
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号