JS 使用try catch捕获异常

博客说明

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

简介

前端是攻克客户的先锋,需要特别注意到用户体验。在开发中,由于各种问题,异常的出现时不可控的,所以需要对异常进行处理,优化用户体验。

try catch finally使用

try语句允许定义在执行时进行错误测试的代码块。

catch 语句允许定义当 try 代码块发生错误时,所执行的代码块。

finally 语句在 try catch 之后无论有无异常都会执行。

注意点: catchfinally 语句都是可选的,但在使用 try 语句时必须至少使用一个。当错误发生时, JavaScript 会停止执行,并生成一个错误信息。可以使用 throw语句 来创建自定义消息(抛出异常)

try {
// tryCode - 尝试执行代码块
}
catch(err) {
// catchCode - 捕获错误的代码块
}
finally {
// finallyCode - 无论 try / catch 结果如何都会执行的代码块
}

异常处理的必要

增强用户体验,准确定位问题,完善的前端处理方案,比如前端监控系统

异常处理的场景

JS 语法错误、代码异常

Promise 异常

Iframe 异常

跨域异常

接口请求AJAX 请求异常

静态资源导入加载异常

try catch的注意点

只能捕获到同步的异常,不能捕获语法和异步的异常,在日常使用中需要注意

// 不能捕获语法的异常
try {
let name = 'aaa // 少写'
} catch(e) {
console.log('捕获到异常:',e);
}
// VM421:1 Uncaught SyntaxError: Unexpected identifier // 不能捕获异步的异常
try {
setTimeout(() => {
console.log(a) // 未声明a变量
}, 1000) } catch(e) {
console.log('捕获到异常:',e);
}
// blog.js:1 Uncaught ReferenceError: a is not defined

感谢

万能的网络

菜鸟教程

阮一峰的es6语法教程

以及勤劳的自己,个人博客GitHub

JS 使用try catch捕获异常的更多相关文章

  1. 使用try和catch捕获异常

    Java程序在执行过程中如果出现异常,会自动生成一个异常对象,该异常对象将被自动提交给JVM,当JVM接收到异常对象时,会寻找能处理这一异常的代码,并把当前异常对象交给其处理,这一过程称为捕获(cat ...

  2. JS中 try...catch...finally (转)

    JS的try..catch..finally var array = null; try { document.write(array[0]); } catch(err) { document.wri ...

  3. JS的 try catch使用心得

    try{ //正常执行 }catch(e/*你感觉会出错的 错误类型*/){ // 可能出现的意外 eg:用户自己操作失误 或者 函数少条件 不影响下面的函数执行 // 有时也会用在 比如 focus ...

  4. spring 声明式事务中try catch捕获异常

    原文:http://heroliuxun.iteye.com/blog/848122 今天遇到了一个这个问题 最近遇到这样的问题,使用spring时,在业务层需要捕获异常(特殊需要),当前一般情况下不 ...

  5. js中(try catch) 对代码的性能影响

    https://blog.csdn.net/shmnh/article/details/52445186 起因 要捕获 JavaScript 代码中的异常一般会采用 try catch,不过 try ...

  6. JS的 try catch 前端使用场景(尽管不多还是会用到)

    try{ //正常执行 }catch(e/*你感觉会出错的 错误类型*/){ // 可能出现的意外 eg:用户自己操作失误 或者 函数少条件 不影响下面的函数执行 // 有时也会用在 比如 focus ...

  7. JS中try catch的用法

    在js中也可以使用try/catch语法,把可能发生异常的代码使用try包裹起来,然后在catch中对异常进行处理,处理后就不会影响后面代码的执行. const a = null try { cons ...

  8. JS中try....catch

    1.事情还有得挽回,换条路走try { 执行某个逻辑} catch (e) { 出问题,换个逻辑执行} 2.体面的退出try { 正常流程} catch (e) { 弹个框告诉用户不好意思出了点问题 ...

  9. js 的try catch应用

    <script language="javascript"> try { throw new Error(10,"asdasdasd") } cat ...

随机推荐

  1. JSX语法详解

    一.基础1.JSX是什么JSX是一种像下面这样的语法: const element = <h1>Hello, world!</h1>;1它是一种JavaScript语法扩展,在 ...

  2. [Java] 部署到Linux

    阿里云 控制台->云服务器ECS->实例->创建实例 计费方式 地域 网络 安全组:默认安全组 公网IP地址:分配 实例 公网带宽:1M ECS服务器:公共镜像CentOS 存储 购 ...

  3. Ansible_管理事实(Fact)

    一.Ansible管理事实(fact) 1.Ansible事实描述 1️⃣:Ansible事实是Ansible在受管主机上自动检测到的变量 2️⃣:事实(fact)中包含有与主机相关的信息,可以像pl ...

  4. shell基础之bus实战(if 练习)

    题目: 一条公交路线共30站,乘客上车需支付1元,之后每超过5站支付0.5元:最好可以实现"余额不足的提醒"和"逃票,漏刷卡的显示". 注意:需下载bc计算器 ...

  5. IDEA Git 操作常见错误处理

    使用 IDEA 的 git 进行操作时报错 更新报错 Git Pull Failed: refusing to merge unrelated histories 提交报错 Push rejected ...

  6. BUCK BOOST学习总结

    首先对于我这种电源方面的小白来说 关于电源用的最多的就是线性稳压了 开关类的如  TI 的TPS系列  我是只知道应用电路而不知道具体原理的 但是长此以往也不是个办法 于是今天就带打家详细的来讲一下 ...

  7. 优秀电路资料--- IOT方案

    完整的IOT方案 http://www.cirmall.com/circuit/4117/%E3%80%90%E5%BC%80%E6%BA%90%E3%80%91%E5%AE%8C%E6%95%B4% ...

  8. mariadb10安装

    Red Hat Enterprise Linux/CentOS 7.0 发行版已将默认的数据库从 MySQL 切换到 MariaDB 添加安装源或是从官网下载安装包https://downloads. ...

  9. SQL 语句大全(简化版)

    1. SELECT * FROM 表名 WHERE 1 AND [ORDER BY DESC LIMIT] 2. INSERT INTO 表名 (字段列表) VALUES (值列表) 3. UPDAT ...

  10. 机器学习算法之K近邻算法

    0x00 概述   K近邻算法是机器学习中非常重要的分类算法.可利用K近邻基于不同的特征提取方式来检测异常操作,比如使用K近邻检测Rootkit,使用K近邻检测webshell等. 0x01 原理   ...