各个浏览器都有打开自己错误调试的方法,ie需在工具栏中打开,但没有控制台,会弹出弹窗,其它浏览器还好,都能显示控制台;
try{}catch(error){}finally{}:这个try-catch语句经常用到,将可能发生错误的语句块儿放在try里,将发生错误后执行的代码放在catch里,finally语句块儿 是可选的,如果存在,无论执行try还是catch最后都会执行finally,需要注意的是,当try或catch里有return时,而finally也存在return,则finally里的return会覆盖前面两个的return。
错误类型:
Erroe:Error是基本类型,所有报错类型都继承该类型
EvalError:eval()函数执行发生错误时发生
RangeError:数值超出范围
ReferenceError:找不到对象
SyntaxError:将错误语法的字符串传入eval()方法时发生
TypeError:执行指定类型的操作时,变量类型不对时抛出
URIError:url解码编码错误时抛出
throw 可以抛出自定义错误信息,在throw后面跟上自定义的错误信息即可,无类型规定。
throw 12345;
throw "hellow";
throw true;
throw {name:"error"};
throw "aaa未定义";
throw new Error("错误信息");
throw new SyntaxError("错误信息");
throw new RangeError("错误信息");
throw new EvalError("错误信息");
throw new URIError("错误信息");
throw new ReferenceError("错误信息");
利用原型链还可以继承Error来创建自定义错误类型。此时需要为新创建的错误类型指定name和message属性。
function CustomError(message){
this.name="CustomError";
this.message=message;
}
CustomError.prototype=new Error();
throw new CustomError("my message");
也可以用onerror事件来代替浏览器自身的报错,不过得阻止浏览器的默认报错:
window.addEventListener("error",function(message){
console.log(message);
return false;//竟然并无卵用,浏览器自身还是要报错;
},false);
console.log(aaa);
图像也支持error事件。只要图像中url特性中的URL不能返回可以被识别的图像格式,就会触发error事件。此时error事件遵循DOM格式,会返回一个以图像为目标的event对象:
var image=new Image();
image.addEventListener("load",function(event){
console.log("image loaded!");
},false);
image.addEventListener("error",function(event){
console.log("image not loaded!");
},false);
image.src="haaa.gif";//指定的文件不存在
原文:https://www.cnblogs.com/fqh123/p/10587489.html