JavaScript高级程序设计之错误处理与调试学习note

前端之家收集整理的这篇文章主要介绍了JavaScript高级程序设计之错误处理与调试学习note前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

错误处理

try-catch语句

try{
    // 可能会导致错误代码
} catch(error){
    // 在错误发生时怎么处理
    alert(error.message);
}

这个例子在向用户显示错误消息时,使用了错误对象的 message 属性
只要代码中包含 finally 子句,那么无论 try 还是 catch 语句块中的 return 语句都将被忽略。

错误类型

  • Error 是基类型,其他错误类型都继承自该类型。

  • EvalError 类型的错误会在使用 eval() 函数而发生异常时被抛出。

  • RangeError 类型的错误会在数值超出相应范围时触发。

  • ReferenceError 在找不到对象的情况下,通常,在访问不存在的变量时,就会发生这种错误

  • SyntaxError 当我们把语法错误的 JavaScript 字符串传入 eval() 函数时,就会导致此类错误

  • TypeError 变量中保存着意外的类型时,或者在访问不存在的方法时,都会导致这种错误

  • URIError 在使用 encodeURI() 或 decodeURI(),而 URI 格式不正确时,就会导致 URIError 错误

try {
    someFunction();
} catch (error){
    if (error instanceof TypeError){
        //处理类型错误
    } else if (error instanceof ReferenceError){
        //处理引用错误
    } else {
        //处理其他类型的错误
    }
}

错误(error)事件

任何没有通过 try-catch 处理的错误都会触发 window 对象的 error 事件。这个事件是 Web 浏览器最早支持的事件之一。只要发生错误,无论是不是浏览器生成的,都会触发 error 事件,并执行这个事件处理程序。然后,浏览器默认的机制发挥作用,像往常一样显示错误消息。像下面这样在事件处理程序中返回false,可以阻止浏览器报告错误的默认行为。

window.onerror = function(message,url,line){
    alert(message);
    return false;
};

图像也支持 error 事件。只要图像的 src 特性中的 URL 不能返回可以被识别的图像格式,就会触发 error 事件。此时的 error 事件遵循 DOM 格式,会返回一个以图像为目标的 event 对象。下面是一个例子。

var image = new Image();
EventUtil.addHandler(image,"load",function(event){
   alert("Image loaded!");
});
EventUtil.addHandler(image,"error",function(event){
   alert("Image not loaded!");
});
image.src = "smilex.gif"; //指定不存在的文件

猜你在找的JavaScript相关文章