|
导读网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立... 网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。 本篇文章给大家带来的内容是关于javascript错误处理机制的介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。有时候,在自己封装的工具函数中,不传参或传入了错误类型的参数,也要适当的抛出一些错误以示警告;使用框架不正常情况下也会抛出错误,如果对错误一无所知,便无从下手调试。综合上述,了解错误的处理机制是多么必要。 以下是笔者归纳总结,如有误之处,欢迎指出。错误构造函数 其中两种做个特殊说明: console.log(Object.getPrototypeOf(SyntaxError) === Error); // true console.log(Object.getPrototypeOf(TypeError) === Error); // true console.log(Object.getPrototypeOf(RangeError) === Error); // true console.log(Object.getPrototypeOf(URIError) === Error); // true console.log(Object.getPrototypeOf(EvalError) === Error); // true console.log(Object.getPrototypeOf(ReferenceError) === Error); // true 来聊一聊每一种错误类型的使用和出错的场景。 Error message 可选,错误描述信息。 抛出错误 捕获错误 try{
throw new Error('这里抛出的是错误信息')
}
catch(err){
alert(err.name + ' '+ err.message)
}属性说明: 当使用new Error创建错误实例后,会有两个属性: let e = new Error('这里抛出的是错误信息'); SyntaxError let n = 11; // Uncaught SyntaxError: Invalid or unexpected token let str = "hel"lo" // Uncaught SyntaxError: Unexpected identifier let 123Var = 'hi' // Uncaught SyntaxError: Invalid or unexpected token 语法错误有很多就不一一列举了,当在浏览器运行时,控制台会抛错,并且告知第几行,所以调试器来比较方便。但要读懂错误的类型为SyntaxError,以及后面的错误信息,这样方便改错。 TypeError let fn = 'hello'; new fn; 抛出错误: let obj = {};
obj.fn()抛出错误: function flatten(arr){
if( !Array.isArray(arr) )
{
throw new TypeError('传入参数不是数组')
}
}flatten('test');传入的参数不为数组时,抛出自定义的类型错误: ReferenceError 引用了一个不存在的变量 console.log(a); 抛出错误 let str = 'hello';
if( str.charAt(0) = 'h' ){
console.log('第一个字符为h');
}抛出错误: let arr = new Array(-1) 抛出错误: let str = 'hello'; str.repeat(-1) 抛出错误: URIError decodeURIComponent('%');
decodeURI('%2')抛出错误: 自定义错误类型 function MyErrorType(message){
this.message = message || '错误';
this.name = 'MyErrorType';
this.stack = (new Error()).stack; // 错误位置和调用栈
}
MyErrorType.prototype = Object.create(Error.prototype);
MyErrorType.prototype.constructor = MyErrorType;
throw new MyErrorType('自定义错误类型抛出错误')关于调用的错误栈信息 function trace() {
try {
throw new Error('myError');
}
catch(e) {
console.log(e.stack);
}
}
function b() {
trace();
}
function a() {
b(3, 4, '\n\n', undefined, {});
}
a('first call, firstarg');错误信息为: 以上就是javascript错误处理机制的介绍(附示例)的详细内容,更多请关注php中文网其它相关文章! 网站建设是一个广义的术语,涵盖了许多不同的技能和学科中所使用的生产和维护的网站。 |
温馨提示:喜欢本站的话,请收藏一下本站!