首页 > 作文

JavaScript高级之自定义异常

更新时间:2023-04-04 00:06:22 阅读: 评论:0

目录
1.概念 1.1什么是错误与异常 1.2异常的分类 2.异常处理 2.1try…catch语句 2.2finally语句 2.3throw语句 3.error对象 3.1自定义异常类型

前言:

在我们的实际编程中,抛出异常(代码报错)是最正常不过的,但是怎么处理异常这就要因人而异的,有的人遇到异常,通常会通过某种办法解决这个异常或者将其隐藏;但是武汉工程大学是一本吗在javascript中提供了一套完整的处理异常的机制,使程序遇到异常还可以正确的执行。所以说异常处理的在实际应用的重要性是毋庸置疑的,一个完整的web应用肯定有一套完整的异常处理机制。

这篇文章我们来介绍一下javascript处理

1.概念

1.1什么是错误与异常

所谓的错误就是编程的过程中使程序不能正常运行的状态,也称为异常。

javascript中所有的异常都是error对象,遇到异常就会抛出一个error对象,这个对象中包含错误的描述信息。

通过javascript提供的异常处理语句,我们可以用结构化的方式来捕捉发生的错误,让异常处理代码与核心业务代码实现分离。

1.2异常的分类

在实际的开发中,异常可以主要分为以下三种:

逻辑错误:逻辑错误是最难被追踪的错误类型。这些错误是由于程序运行的逻辑上出现错误,从而导致你的脚本程序并不能得到你想要的结果。javascript自带错误:这是最为常见的错误类型,例如发生javascript的语法错误、代码引用错误、类型错误等,javascript的引擎都会自动触发这些错误。开发者主动抛出的错误:一般都是开发者为了满足自己的需求所定义出的错误

2.异常处理

2.1try…catch语句

try…catch语句是javascript中处理异常的一种标准方式,语法结构如下所示:

try {     // 供测试的代码块} catch(err) {     // 处理错误的代码块} 

参数:

try:语句允许您定义一个代码块,以便在执行时检测错误。catch:语句允许你定义一个要执行的代码块,如果try代码块中发生错改革是什么误将会执行此代码块err:一个标识符,此标识符表示一个error对象,错误的类型与测试代码块中的错误与之对应。

示例代码如下所示:

try {  // 用于测试有没有出错的代码块  console.log(v) // 此时v没有定义将会抛出异常} catch (error) {  // 抛出异常将执行此代码块  console.log('上述代码有错误')}

值得注意的是**try和catch**语句是成对出现的

2.2finally语句

finally语句又称为终结块,此语句块会在trycatch语句结束之后执行,无论结果是否报错。

语法结构如下所示:

try {     // 供测试的代码块} catch(err) {     // 处理错误的代码块}  finally {     // 无论 try  catch 结果如何都执行的代码块}

示例代码如下所示:

// var vtry {  // 用于测试有没有出错的代码块  console.log(v) // 此时v没有定义将会抛出异常} catch (error) {  // 抛出异常将执行此代码块  console.log('上述代码有错误')} finally {  console.log('我必须被执行')}

2.3throw语句

throw****语句用来抛出一个用户自定义的异常。此异常可以是任何数据类型。当执行throw语句时,当前执行将会被停止,如果有catch块,则会执行catch块,否则将跳出循环。

语法格式如下:

throw expression;

expression:要抛出的表达式

使用throw语句来节日广告抛出一个异常。当你抛出异常时,expression指定了异常的内容。

示例代码如下所示:

// throw "错误"  // 输出 错误throw fal   // 输出 fals墨梅古诗原文正版e

当然,throw后面也可以是一个对象

3.error对象

通过error的构造器可以创建一个错误对象。当运行时错误产生时,error的实例对象会被抛出。一般情况下error类型的错误很少见,基本都是其他错误类型的,但是其他错误类型都是继承于error的。

error对象主要用于用户自定义的异常的基础对象。

除了error对象外,javascript还提供了如下几种预定义类型的错误

错误名描述evalerror已在eval()函数中发生的错误rangeerror已发生超出数字范围的错误referenceerror已发生非法引用syntaxerror已发生语法错误typeerror已发生类型错误urierror在encodeuri()中已发生的错误

error的属性主要有如下两个:

属性描述name设置或返回错误名message设置或返回错误消息(一条字符串)

创建error对象的实例语法格式如下所示:

new error([message)

参数:

message:可选,描述的错误信息

其他预定义类型的创建语法与error相同

3.1自定义异常类型

如果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自定义异常内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 00:06:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/509215488c0461db6ee6c84e9ee249ff.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:JavaScript高级之自定义异常.doc

本文 PDF 下载地址:JavaScript高级之自定义异常.pdf

标签:异常   错误   代码   语句
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图