JavaScript中错误异常的案例

  介绍

这篇文章将为大家详细讲解有关JavaScript中错误异常的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

我的建议是不要隐藏错误,勇敢地抛出来。没有人会因为代码出现错误导致程序崩溃而羞耻,我们可以让程序中断,让用户重来。错误是无法避免的,如何去处理它才是最重要的。

JavaScript提供一套错误处理机制,错误是干扰程序正常流程的非正常的事故。而没人可以保持程序没有bug,那么上线后遇到特殊的错误,如何更快的定位问题所在呢?这就是我们这个专题需要讨论的问题。

下面会从JavaScript错误基础知识,如何拦截和捕获异常,如何方便的在线上报错误等方面来叙述,本人也是根据网上的知识点进行了一些总结和分析(我只是互联网的搬运工,不是创造者),如果有什么错漏的情况,请在问题上狠狠的批评我。

这个专题目前是针对浏览器的,还没考虑到节点。js,不过都是JavaScript Es6语法,大同小异。

什么时候JavaScript会抛出错误呢?

一般分为两种情况:

JavaScript自带错误

开发者主动抛出的错误

<强> JavaScript引擎自动抛出的错误

大多数场景下我们遇到的错误都是这类错误。如果发生Javscript语法错误,代码引用错误,类型错误等,JavaScript引擎就会自动触发此类错误。如下一些场景:

场景一

console.log (a.notExited)//浏览器会抛出未捕获ReferenceError:一个没有定义

场景二

常量;//浏览器抛出未捕获SyntaxError:失踪的初始化在常量声明

语法错误,浏览器一般第一时间就抛出错误,不会等到执行的时候才会报错。

场景三

让数据;   data.forEach (v=在{})//未捕获TypeError:无法读取属性& # 39;foreach # 39;未定义的

手动抛出的错误

一般都是类库开发的自定义错误异常(如参数等不合法的错误异常抛出),或者重新修改错误消息进行上报,以方便理解。

场景一

函数sum (a, b) {   如果(typeof !==& # 39;数字# 39;){   把TypeError(& # 39;预计数量是一个# 39;公司);   }   如果(typeof b !==& # 39;数字# 39;){   把TypeError(& # 39;预期b是一个号码# 39;公司);   }   返回一个+ b;   }   总和(& # 39;d # 39;);//浏览器抛出未捕获TypeError:预期b是一个数字。

场景二

当然我们不一定需要这样做。

让数据;      尝试{   数据。forEach (v=比;{});   }捕捉(错误){   错误。消息=& # 39;数据没有定义,数据必须是数组强生# 39;;   error.name=& # 39; DataTypeError& # 39;;   把错误;   }

如何创建误差对象?

创建语法如下:

新的错误([消息[文件名,lineNumber]])

省略新的语法也一样。

其中文件名和lineNumber不是所有浏览器都兼容的,谷歌也不支持,所以可以忽略。

错误构造函数是通用错误类型,除了错误类型,还有TypeError, RangeError等类型。

错误实例

这里列举的都是错误层的原型链属性和方法,更深层的原型链的继承属性和方便不做说明。一些有兼容性的而且不常用的属性和方法不做说明。

console.log (Error.prototype)//浏览器输出{构造函数:?,名字:“Error",信息:““,toString: ?}

其他错误类型构造函数是继承错误,实例是一致的。

属性

Error.prototype。消息

错误信息,错误(“msg")。信息===癿sg"。

Error.prototype.name

错误类型(名字),错误(“msg") . name===按砦蟆薄H绻荰ypeError,那么名字为TypeError。

Error.prototype。堆栈

错误对象作为一个非标准的栈属性提供了一种函数追踪方式,无论这个函数被被调用,处于什么模式,来自于哪一行或者哪个文件,有着什么样的参数。这个栈产生于最近一次调用最早的那次调用,返回原始的全局作用域调用。

这个不是规范,存在兼容性。经测试,谷歌,火狐,边缘,回历2月都支持此特性(都是在最新的版本下测试2019-04-02),即不支持。

方法

Error.prototype.constructor

Error.prototype。toString

返回值格式为${名称}:{消息}美元。

<强>常用错误类型

除了通用的错误构造函数外,JavaScript还有常见的5个其他类型的错误构造函数。

JavaScript中错误异常的案例