JavaScript错误处理try..catch...finally+涵盖throw+TypeError+RangeError
作者:前端老实人 发布时间:2024-04-22 13:26:05
标签:JavaScript,错误,处理,Error
目录
1.用途
2.语法
3.实操
1.用途
通常,如果发生错误,脚本就会立即停止,并在控制台将错误打印出来。
有了这个语句就可以捕获错误并执行合理操作,可以让程序继续执行下去
2.语法
try {
// 代码...
} catch (err) {
//err是有关错误详细信息的对象
// 错误捕获,上面代码报错就会转到这个代码块,而不会停止运行
} finally {
//无论是否有异常抛出或捕获它总是执行
}
这种语句可以嵌套
3.实操
Catch
捕获所有 error
。
如果我们不知道如何处理它,那我们就 throw err
。
throw
操作符会生成一个 error
对象。
用来抛出一个用户自定义的异常。当前函数的执行将被停止(throw之后的语句将不会执行),并且控制将被传递到调用堆栈中的第一个Catch块。如果调用者函数中没有catch块,程序将会终止。
示例:
throw "Error1"; // 抛出了一个值为字符串的异常
throw 4; // 抛出了一个值为整数4的异常
/*JavaScript 中有很多内建的标准 error 的构造器:Error,SyntaxError,ReferenceError,TypeError 等。我们也可以使用它们来创建 error 对象。*/
let error = new Error("Things happen o_O");
alert(error.name); // Error
alert(error.message); // Things happen o_O
//json的异常
try {
JSON.parse("{ bad json o_O }");
} catch(e) {
alert(e.name); // SyntaxError
alert(e.message); // Unexpected token b in JSON at position 2
}
补充:
try块的代码可能会抛出三种异常:TypeError
,RangeError
,SyntaxError
有同学可能不知道这三个的意思,这里说明下
这两个都是全局对象,全局的对象本身不包含任何方法, 然而它通过原型链继承了一些方法.
instanceof 操作符用于判断错误类型:
TypeError
:(类型错误)对象用来表示值的类型非预期类型时发生的错误RangeError
: 对象标明一个错误,当一个值不在其所允许的范围或者集合中SyntaxError
: 当Javascript语言解析代码时,Javascript引擎发现了不符合语法规范的tokens或token顺序时抛出
实例:
catch (e) {//以下是这个对象的参数属性
console.log(e instanceof TypeError); // true
console.log(e.message); // "描述此错误"
console.log(e.name); // "TypeError"
console.log(e.fileName); // "引起该异常的代码所在的文件的名字"
console.log(e.lineNumber); // 引起该异常的代码的行号
}
来源:https://blog.51cto.com/u_15453248/4846276
0
投稿
猜你喜欢
- 本文实例为大家分享了微信小程序实现登陆注册滑块验证的具体代码,供大家参考,具体内容如下一、创建自定义组件MoveVerifyMoveVeri
- Worksheet 对象的 rows 属性和 columns 属性得到的是一 Generator 对象,不能用中括号取索引。可先用列表推导式
- 概述我们可以将此归咎于许多原因,但这肯定不仅仅是因为 PHP 生态系统缺乏适当的测试工具。在本文中,我想向您展示一个简单的设置,用于项目的基
- 这礼拜碰到一些问题,然后意识到基础知识一段时间没巩固的话,还是有遗忘的部分,还是需要温习,这里做份笔记,记录一下前续先简单描述下碰到的题目,
- 今天跟大家分享下selenium中根据父子、兄弟、相邻节点定位的方法,很多人在实际应用中会遇到想定位的节点无法直接定位,需要通过附近节点来相
- 爬蟲四步原理:1.发送请求:requests2.获取相应数据:对方及其直接返回3.解析并提取想要的数据:re4.保存提取后的数据:with
- 本文实例讲述了python中__call__方法的用法,分享给大家供大家参考。具体方法分析如下:Python中的__call__允许程序员创
- 假设有一个表,结构如下:mysql> CREATE TABLE `a` ( `id
- 1.将 JSON 转换为 CSVimport jsonif __name__ == '__main__': &
- 性能监控一、web项目(如gin中)1.使用ginpprofimport "github.com/DeanThompson/gin
- 在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩。需要注意的是,这段脚本仅适用数据一致性要求不高的环境。#!/bin/
- 在自然语言处理过程中,全角、半角的的不一致会导致信息抽取不一致,因此需要统一。有规律(不含空格):全角字符unicode编码从65281~6
- vue3 ref构建响应式变量失效问题描述在Vue3中使用ref声明响应式变量,同时用函数对值进行变化,但是无法响应式改变值<temp
- Python3.6.4必须downgrade成3.5pip版本最低9.0.3自己的电脑必须已经安装好git关于anaconda prompt
- Redis 除了做缓存,还能干很多很多事情:分布式锁、限流、处理请求接口幂等性。。。太多太多了配置首先我们创建一个 Spring Boot
- cos()方法返回x弧度的余弦值。语法以下是cos()方法的语法:cos(x)注意:此函数是无法直接访问的,所以我们需要导入ma
- 将两个嵌套for循环写成一个列表生成式如,有一个嵌套列表,a=[[1,2],[3,4],[5,6]],要提取列表里的每一个元素用for循环处
- pip是一个很好用的第三方库安装方式,但是默认的源没法连接,就算有时候可以成功率也很低,所以换成国内镜像源比较方便。将pip源更换到国内镜像
- Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,
- 什么是闭包闭包(Closure)是一种函数,它被定义在另一个函数的内部,并且可以访问该函数作用域中的变量,即使该函数已经执行完毕并被销毁。换