JavaScript高级程序设计 -- 错误处理

主流的浏览器IE、火狐、Safari和Chrome等,都具有某种向用户报告JavaScript错误的机制。默认情况下,浏览器都会隐藏这些错误,因为除了开发者没有人会关心这些错误信息。

在Chrome中也会隐藏JavaScript错误、快捷打开JavaScript错误控制台的方式:

打开一个网页,同时按下Ctrl + shift + J 会自动弹出控制台。

错误处理:

错误处理在程序设计中的重要性是毋庸置疑的。任何NB的web应用程序都需要一套完善的错误处理机制,实际上,服务器端往往会在错误处理机制上投入较大的精力。通常需要考虑按照类型、频率,或者其他重要的指标对错误进行分类。为了替使用我们程序的用户们考虑周全,防止人们在已经发生错误的情况还要进行错误的操作,作为一名合格的开发人员,要有适当的错误提醒和不就方式,我们必须清楚地知道理解在处理JavaScript出错的时候,我们都有什么工具可以借用。

try-catch语句:

在try中的语句是运行时可能会发生错误的代码,而在catch中是在try中发生错误的时候执行什么操作的,在catch中打印错误的信息哎控制台能帮助开打折更快地知道错误是什么,在什么位置。

finally子句:虽然在try-catch中是可选的,但是在finally中已经使用,就必须执行,无论try中的代码出没出现错误。

错误类型:

Error是基类,其他错误类型都是继承自Error类型;

EvalError类型的错误会在使用eval()方法而发生异常是被抛出,如果没有把eval当做函数来调用,就会抛出错误;

RangeError类型的错误会在数值超过对应的范围时触发;

ReferenceError通常在访问未声明的变量的时候会抛出的错误;

SyntaxError当我们把语法错误的JavaScript字符串传入eval()函数时,会导致这种类型的错误发生;

TypeError由于执行特定与类型的操作时,变量的类型不符合要求所致;

URIError在使用encodeURI()或decodeURI(),而URI格式不正确,(什么是URI请移步

https://baike.baidu.com/item/URI/2901761?fr=aladdin)就会导致URIError;

抛出错误:

throw操作符用于随时抛出自定义错误,必须给定一个值,但是值的类型没有要求。

错误(error)事件:

onerror事件在没有通过try-catch处理的错误都会触发window对象的error事件。在任何浏览器中,onerror事件处理程序都不会创建event对象,但它可以接受三个参数:错误信息、错误所在的URL和和行号。多数情况下只有错误信息有用,行号所指的代码既可能是嵌入的JavaScript代码也有可能是外部引入的JavaScript文件。

常见的错误类型:

1、类型转换错误

类型转换错误出现自爱使用了某个操作符,或者使用了其他可能会自动转换值的数据类型的语言结构时。

在使用相等== 和不相等!= 操作符,或者在if、for、while等控制语句中使用非布尔值时,最常会发生这个错误。

2、数据类型错误

JavaScript语言是弱类型的,在使用变量和函数参数之前,不会对它们进行比较以确保它们的数据类型正确。

该函数重写后首先检查了传入的参数是不是字符串,这样就可以避免接受不到字符串而发生错误了。

3、通信错误

在使用AJAX进行数据交互或在使用URL进行参数传递时,如果URL的格式不对就会发生错误或乱码,因为不同的浏览器对传递的参数解释是不同的,所以有必要使用编码进行统一传递。

非致命错误:不影响用户的主要任务、只影响页面的一部分、可以恢复、重复相同操作可以消除错误;

致命错误:应用程序无法继续运行、错误明显影响到用户的主要操作、会引发一系列错误产生;

把错误记录到服务器

开发web应用程序的过程中的一种常见的做法,就是集中保存错误日志,以便查找重要错误的原因

猜你喜欢

转载自blog.csdn.net/qq_38021852/article/details/82667867
今日推荐