JavaScript错误与异常

下面是对JavaScript错误与异常的整理,希望可以帮助到有需要的小伙伴。

1、错误与异常是什么

错误,指程序中的非正常运行状态,在其它编程语言中称为“异常”或“错误”。解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息。
通过使用JavaScript提供的异常处理语句,可以用结构化的方式来捕捉发生的错误,让异常处理代码与核心业务代码实现分离。
错误与异常处理在应用中的重要性是毋庸置疑的。任何有影响力的Web应用都需要一套完善的错误处理机制。

2、try…catch语句

tr y…catch语句作为JavaScript中处理异常的一种标准方式。try语句标记一块待尝试的语句,如果该语句出现错误,则通过catch语句进行捕获。

所有错误的父类都是Error

基本的语法如下:

try {// 可能会导致错误的代码
} catch(error) {// 在错误发生时的处理
}

(1)捕捉块

可以使用捕捉块来处理所有可能在try代码块中产生的异常。

catch(chtchID){statements
}
  • 捕捉块指定了一个标识符(上述语句中的catchD)来存放抛出语句指定的值。
  • 可以用这个标识符来获取抛出的异常信息

(2)终结块

终结块包含了在try和catch块完成后,下面接着的语句之前执行的语句**。终结块无论是否抛出异常都会执行**。

如果跑抛出了一个异常,就算没有异常处理,终结块里的语句也会执行。

try {console.log(O);
}catch( error ) {console.log(1);
}finally {console.log(3);
}

实例:

try {console.log(v);   // 调用未定义的变量 - 报错
}// 用于处理try语句中出现的错误
catch (e){  // e 相当于形参,形参可以是任何别的值// e - 表示try语句块中出现的错误信息console.log('该变量未定义...');
}// 终结块 - catch语句无法处理try语句中的错误或异常时,执行finally语句中的内容
finally {}

(3) throw语句

使用throw语句抛出一个异常。当你抛出异常,你规定一个含有值的表达式抛出。

注意:当你在抛出异常时声明一个对象时,可以在catch语句块中查询到对象的属性。

实例:

function fn(v){if (v){return v;} else {/*throw语句 - 人为抛出错误或异常* 语法结构 - throw 异常或错误的表达式* 表达式允许是任意类型的内容* 作用 - 预判断当前使用的变量、函数或对象是否存在*/throw {name : '张无忌'};}
}// console.log(fn(10));  // 10
// console.log(fn());var result;
try{result = fn();
} catch(e) {result = 'unknow';console.log(e.name);
}
console.log(result);

(4)嵌套try…catch语句

try…catch是在catch中嵌套try…catch,可以嵌套一个或多个。

如果一个内部的try…catch语句没有扑捉块,将会启动匹配外部的try…catch语句的扑捉块。

try {console.log(0);
}catch( error ) {try {console.log(1);}catch( error ) {console.log(2);}
}

3、错误类型

(1)基本错误类型

执行代码期间可能会发生的错误有多种类型,每种错误都有对应的错误类型。当错误发生时,就会抛出对应类型的错误对象。
Error是基本错误类型,其他错误类型都继承自该类型。Error类型的错误很少见,如果有也是浏览器抛出的。这个基本错误类型的主要目的是提供给开发人员抛出自定义错误的。

(2)预定义错误类型

7种预定义的错误类型:

错误类型 说明
EvalError 表示错误的原因:与eval()有关。
lnternalError 表示Javascript引擎内部错误的异常。
RangeError 表示错误的原因:数值变量或参数超出其有效范围。
ReferenceError 表示错误的原因:无效引用。
SyntaxError 表示错误的原因:eval(在解析代码的过程中发生的语法错误。
TypeError 表示错误的原因:变量或参数不属于有效类型
URIError 表示错误的原因:给encodeURI()或 decodeURl()传递的参数无效。

JavaScript错误与异常相关推荐

  1. JavaScript错误和异常

    1.Error对象 表示一个错误,代码运行中发生错误时,会创建Error对象并抛出. 创建错误: new Error([message],[filename],[lineNumber]) Error类 ...

  2. IE调试网页之五:使用 F12 开发人员工具调试 JavaScript 错误 (Windows)

    使用 F12 开发人员工具,Web 开发人员能够在无需离开浏览器的情况下快速调试 JavaScript 代码. 通过内置到每个 Windows Internet Explorer 9 安装中,F12 ...

  3. 快速而优雅的处理 JavaScript 中的错误与异常(一键 get 新技能)

    古之立大事者,不惟有超世之才,亦必有坚忍不拔之志.--苏轼 写在前面 在我们的实际编程中,抛出异常(代码报错)是最正常不过的,但是怎么处理异常这就要因人而异的,有的人遇到异常,通常会通过某种办法解决这 ...

  4. 浅谈JavaScript错误

    本文主要从前端开发者的角度谈一谈大多数前端开发者都会遇到的js错误,对错误产生的原因.发生阶段,以及如何应对错误进行分析.归纳和总结,希望得到一些有益的结论用来指导日常开发工作. 概念辨析 错误(Er ...

  5. javascript 错误与调试

    1.JavaScript 错误 - throw.try 和 catch try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 1.1 JavaScript 错误 ...

  6. 【转】调试JavaScript 错误的解决方案

    A  使用alert() 和document.write() 方法监视变量值 如果要中断代码的运行,监视变量的值,则使用alert() 方法: 如果需要查看的值很多,则使用document.write ...

  7. javascript错误处理与调试

    视频课堂https://edu.csdn.net/course/play/7621 在程序开发中难免会遇到一些错误,在成千上万的代码中去寻找错误很明显相当于大海捞针,为此,每种计算机编程语言都要它独特 ...

  8. 究竟 javascript 错误处理有哪些类型?

    有时候,在自己封装的工具函数中,不传参或传入了错误类型的参数,也要适当的抛出一些错误以示警告:使用框架不正常情况下也会抛出错误,如果对错误一无所知,便无从下手调试.综合上述,了解错误的处理机制是多么必 ...

  9. javascript错误处理与调试(转)

    JavaScript 在错误处理调试上一直是它的软肋,如果脚本出错,给出的提示经常也让人摸不着头脑. ECMAScript 第 3 版为了解决这个问题引入了 try...catch 和 throw 语 ...

最新文章

  1. 总结六条对我们学习Linux系统有用的忠告
  2. TikTok面临用户流失、苹果iOS14公测、无代码定义下一代软件等| Decode the Week
  3. jdeps_JDeps入门–分析项目的依赖关系
  4. ITTC数据挖掘平台介绍(综述)——平台简介
  5. 梯度下降法、牛顿法和拟牛顿法——机器学习面试
  6. 为iptables增加layer7补丁(Linux2.6.25内核
  7. mysql 根据状态输出_mysql show processlist 输出状态说明
  8. 整理python笔记001(列表(深浅copy),元祖,字典,集合)
  9. 超详细java中的ClassLoader详解
  10. 没有资本怎么创业的思维:不是钱,是实现。
  11. 爬虫:使用Chrome谷歌浏览器自动获取xpath爬取内容为空
  12. oracle帐号永久生效,[Linux] alias永久生效
  13. JSbridge原理与实现简析
  14. SaaSpace:2022年4款最好的免费3D打印软件
  15. PS 图片背景变为透明
  16. Azkaban安装并设置定时任务Schedule以及邮件发送接收
  17. C# 之 ZipOutPutStream 压缩文件
  18. OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  19. php联想输入,联想笔记本电脑键盘功能基础知识
  20. ruoyi(若依)框架学习

热门文章

  1. 小技巧处理div内容溢出
  2. 重新签名IOS .ipa文件 (包含第三方框架和插件)
  3. js-格式化数字保留两位小数-带千分符
  4. I;P : Leaderboards and Achievements
  5. 数据库阻塞---讲解设计应用程序时避免阻塞的八个准则
  6. AOJ0525 Osenbei【DFS+状态组合】
  7. Bailian4075 矩阵旋转【矩阵】
  8. 51NOD-1005 大数加法【大数】
  9. 集大成者 —— 荀子
  10. C++ 工具类 —— 词条类(Entry)