js try{}catch(e){}的理解
2024-09-01 11:42:54
程序开发中,编程人员经常要面对的是如何编写代码来响应错误事件的发生,即例外处理(exception handlers)。如果例外处理代码设计得周全,那么最终呈现给用户的就将是一个友好的界面。否则,就会让访问者对莫名的现象感到真正的“意外”。
例外处理:当JavaScript程序在运行中发生了诸如数组索引越界、类型不匹配或者语法错误时,JavaScript解释器就会引发例外处理。ECMAScript定义了六种类型的错误,除此之外,我们可以使用Error对象和throw语句来创建并引发自定义的例外处理信息。
例外处理技术的优点:通过运用例外处理技术,我们可以实现用结构化的方式来响应错误事件的发生,让例外处理代码与正常脚本代码科学分离,最终使我们能够集中精力编写完成主要功能的核心程序。
// 如下,如果我们这样写: console.log(i); var a = 6; console.log(++a); // 因为i未定义 出现错误 那么js就卡在这里了 我们预期的输出a的结果也不执行了。
// 如果 我们使用try catch: try {
console.log(i);
}catch(e) {
console.log(e)
} var a = 5;
console.log(++a); // 那么,i未定义的错误被捕获掉了,程序仍能继续运行下去,最后输出a
// 使用 try...catch...finally 语句来执行 try {
// 此处是可能产生例外的语句
} catch(error) {
// 此处是负责例外处理的语句
} finally {
// 此处是出口语句(当没有执行catch时不会触发)故try...catch比较常见
}
// 我们可以自定义抛出错误,比如我们想检验一个值: var user = 'SpongeBob'; try {
if(user != 'SpongeBob') { throw new Error('用户名错误'); }
}catch(e) {
console.log(e.message) // 在这里可以捕获到自定义的错误
}
例外表现形式:Error对象
在JavaScript,例外是作为Error对象出现的。Error对象有两个属性:name属性表示例外的类型,message属性表示例外的含义。根据这些属性的取值。
Error.name的取值一共有六种,如下:
Error:()的使用与定义不一致
RangeError:数值越界
ReferenceError:非法或不能识别的引用数值
SyntaxError:发生语法解析错误
TypeError:操作数类型错误
URIError:URI处理函数使用不当
最新文章
- KOTLIN开发语言文档(官方文档) -- 2.基本概念
- WinForm 对Web Api 增 册 改 查 的基本操作
- (翻译)《Hands-on Node.js》—— Introduction
- C#正则表达式Regex常用匹配
- Sharepoint添加顶部导航菜单
- Android课程---String、StringBuffer 、StringBuilder 的区别(转)
- 【云计算】docker build如何支持参数化构建?
- Cocos2d-x 3.x项目创建
- excel列显示形式互换(字母与数字)
- C++实现链栈的基本操作
- HDU 3315 My Brute(费用流)
- win8/win10/win2012r2 存储池 冗余分析
- UVA - 208 Firetruck(消防车)(并查集+回溯)
- Linux下一些命令
- Redis数据类型之ZSet(五)
- DOM元素的Attribute(特性)和Property(属性) 【转载】
- SpringBoot+gradle项目构建war
- WebService调用SSAS教程
- [二分答案][NOIP2015]跳石头
- 跟厂长学PHP7内核(七):常见变量类型的基本结构