在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言: 在我们的实际编程中,抛出异常(代码报错)是最正常不过的,但是怎么处理异常这就要因人而异的,有的人遇到异常,通常会通过某种办法解决这个异常或者将其隐藏;但是在 这篇文章我们来介绍一下JavaScript处理 1.概念
|
错误名 | 描述 |
---|---|
EvalError | 已在eval()函数中发生的错误 |
RangeError | 已发生超出数字范围的错误 |
ReferenceError | 已发生非法引用 |
SyntaxError | 已发生语法错误 |
TypeError | 已发生类型错误 |
URIError | 在encodeURI()中已发生的错误 |
Error的属性主要有如下两个:
属性 | 描述 |
---|---|
name | 设置或返回错误名 |
message | 设置或返回错误消息(一条字符串) |
创建Error对象的实例语法格式如下所示:
new Error([message)
参数:
message
:可选,描述的错误信息
其他预定义类型的创建语法与Error相同
如果JavaScript
提供的异常类型不能够满足我们,我们可以自定义属于自己的异常类型,这个自定义的异常类型一般都是继承Error的异常类型,而且可以通过instanceof
关键字来表示属于那种异常类型。
先来看一下Node.js
中提供的用于自定义异常类型所提供的属性和方法,
如下所示:
error.stack
:属性:返回一个字符串,字符串的第一行会被格式化为<error class name>: <error message>,
且带上一系列栈帧(每一行都以"at "开头)。每一帧描述了一个代码中导致错误生成的调用点。
Error.captureStackTrace(targetObject[, constructorOpt])
方法:targetObject
表示一个对象,constructorOpt表示对象的构造函数。作用:在targetObject
上创建一个.stack属性
示例代码如下:
function MyError(message) { this.message = message this.name = 'MyError' /* * Error.captureStackTrace(targetObject[, constructorOpt]) * 参数 targetObject -> 表示一个对象 * 参数 constructorOpt -> 表示对象的构造函数 * 在targetObject上创建一个.stack属性, 调用是返回一个调用 Error.captureStackTrace() 的位置的字符串。 */ Error.captureStackTrace(this, MyError) } MyError.prototype = new Error() MyError.prototype.constructor = MyError // * 在node.js 环境中 new Error 会直接抛出异常 不适用于 node.js环境 // function MyError(message) { // this.name = 'MyError'; // this.message = message || 'Default Message'; // this.stack = (new Error()).stack; // } // MyError.prototype = Object.create(Error.prototype); // MyError.prototype.constructor = MyError; try { throw new MyError('错了') } catch (e) { console.log(e) }
结语:
JavaScript 中的异常处理,在实际的开发中一般只做两件事情:
到此这篇关于JavaScript高级之自定义异常的文章就介绍到这了,更多相关JavaScript自定义异常内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界!
请发表评论