JS的报错处理(throw、try、catch)
MDN
throw
语句用来抛出一个用户自定义的异常。当前函数的执行将被停止(throw
之后的语句将不会执行),并且控制将被传递到调用堆栈中的第一个catch块。如果调用者函数中没有catch
块,程序将会终止。
当日常代码逻辑较复杂时可以使用异常快速定位错误,并进行相应处理。
throw
抛出异常,可以是一段字符串、数字、布尔
function test(i) {if(i === 0) {throw "i不能等于0"; //throw 777; //throw true; }console.log('后续代码!')
} test(0);
也可以是一个对象,记录当前报错具体信息,方便快速定位!
throw { errorCode: -1001, errorMessage: "type不能为0~" } //对象类型throw new Error("type不能为0") //使用Error类创建一个报错信息
try、catch
既然有抛出也要有对应的代码接受,接受后也需要相应的代码处理当前报错。
MDN
try...catch
语句标记要尝试的语句块,并指定一个出现异常时抛出的响应。
基础语法:
let num = 0
function test(i) {if(i === 0) {throw "i不能等于0"; //throw 777; //throw true; }console.log('后续代码!')
}
try {//监测抛出的报错信息test(num)
}catch(e) {//e为抛出的报错信息console.log(e) //当try接受报错后执行num ++;test(num)
}
也可以在catch中继续嵌套抛出
let num = 10;
try {throw num
} catch(e) {if(e > 5) {num = 1}else {throw e}
} catch(e) {num = 1
}
finally
不管是否抛出错误,都执行
try {throw 10
} catch(e) {return e
} finally {console.log('aaa')
}
JS的报错处理(throw、try、catch)相关推荐
- eclipse 如何忽略js文件报错
本文翻译自:http://stackoverflow.com/questions/10254922/jquery-mobile-1-1-0-min-triggers-errors-in-eclipse ...
- win10编辑js文件报错,错误','
在filezilla中编辑js文件报错,在本地可以使用文本编辑,但需重新上传覆盖,很不方便 在win10默认应用中修改为文本编辑即可,在FTP编辑: 直接可以打开编辑
- MyEclipse导入项目后 js文件报错
当我们把项目导入MyEclipse的时候会发现导入的项目报错,点开一看是js文件报错了,那么我们应该如何处理导入MyEclipse之后js文件报错呢??? 首先,我们要保证我们导入的代码是正确的. 解 ...
- python调用js文件报错_python - selenium 运行网页中js脚本报错,提示未定义
问 题 问题1 selenium 运行网易中js脚本报错提示未定义 报错提示如下: driver.execute_script("javascript:amsInit(62800,30315 ...
- JS undefined报错
JS undefined报错 查看:onclick的调用者未找到 原因:调用该方法的变量的值为null,即节点未找到 解决:在引用此变量的前文对此变量进行定义并赋值,不可以在后面定义并赋值,js是从上 ...
- 运行JS代码报错:Uncaught TypeError: Cannot read property‘style‘ of undefined
运行JS代码报错:Uncaught TypeError: Cannot read property'style' of undefined 这个报错的原因通常是没有获取指定的标签: 这个报错的原因通常 ...
- 【微信】微信小程序 微信开发工具 创建js文件报错 pages/module/module.js 出现脚本错误或者未正确调用 Page()...
创建报错pages/module/module.js 出现脚本错误或者未正确调用 Page() 解决方法: 在js文件中添加 Page({}) 转载于:https://www.cnblogs.com/ ...
- 【shiro】使用shiro搭建的项目,页面引用js,报错:Uncaught SyntaxError: Unexpected token ...
使用shiro搭建项目过程中,总是出现登录页面 登录第一次有效果,登陆第二次出现302状态码,第三次又有效果,第四次又没有效果的局面. 因此,采用ajax提交页面登录的用户名和密码,但是在引用js的过 ...
- js vm报错_uni-app v3版本更新常见问题排查
uni-app v3版本更新常见问题排查 组件不显示或者功能异常 原因:组件内使用了 onReady,onReady 是页面的生命周期,不应在组件中直接使用,组件中应该使用 mounted 生命周期 ...
最新文章
- 杭州电子科技大学保研计算机,杭州电子科技大学计算机学院软件工程(专业学位)保研条件...
- CURL HTTPS POST
- python关键字中文意思_python 字符串只保留汉字的方法
- 全程干货,requests模块与selenium框架详解
- DB2存储过程中的ATOMIC关键字
- 循环机换变速箱油教程_问答| 想更换变速箱油,是重力换还是循环换?
- html css important,css中的important是什么意思?
- Windows网络编程之UDP通信
- 油猴脚本管理器使用指南
- 现代控制理论 之 LQR控制
- 用java求梯形面积
- c语言为什么不能自动free,求大神帮忙看看 为什么cfree没有报错但是就是运行不了...
- 矢量绘图控件VectorDraw系列2021年初最新发布!性能大幅度提升 | 附下载
- 一点笔记,好记性不如烂笔头
- 几种室内定位技术方案对比,室内定位种类的优缺点一目了然-新导智能
- 2020下半年新机最新消息_2020下半年3款重磅新机:三星Note20被吹爆,华为Mate40差点意思...
- 【Spring】@Lazy注解
- linux基础——echo
- Android发送彩信(带图片附件)
- Dubbo-02 20190315
热门文章
- PDF文件删除空白页
- ssd硬盘 速度慢 linux,固态硬盘速度太慢 快不起来?你或许犯了这四个SSD使用错误 (全文)...
- 基本IO接口技术——微机第七章笔记
- 将vue-admin-template组件默认英文语言改成中文
- 网络工程设计教程系统集成方法第3版-第1章 网络工程设计概述
- BiocManager安装R包解决下载速度太慢的问题
- matlab 的 符号,MATLAB符号计算
- php m pi 2,PHP rad2deg()函数
- i.MX283开发板移植RTL8188ETV无线网卡驱动
- 选择中医 - 醒脑(养生、穴位)