JS中的try...catch

一、定义和结构

作用:捕获同步执行代码下的异常错误

在没有使用try...catch的情况下,同步代码执行遇到异常会报错,并中断后续代码执行;

在使用try...catch的情况下,同步代码执行遇到异常会抛出异常,并继续执行后续代码。

console.log("代码1");
try {
    console.log("代码2");
} catch (err) {
    console.log(err);
}
console.log("代码3");

输出结果:

二、throw 异常抛出

throw语句用来抛出一个用户自定义的异常。

throw抛出后,不再执行后续代码,开始执行catch中的代码并抛出异常。

console.log("代码1");
try {
    console.log("代码2");
    throw '抛出一个自定义异常';
    console.log("代码3");
} catch (err) {
    console.log("err 代码5");
    console.log(err);
    console.log("err 代码6");
}
console.log("代码4");

输出结果:

三、finally

无论是否抛出错误,都执行。

使用场景:

通常用于清理工作,比如关闭文件、释放资源等

console.log("代码1");
try {
    console.log("代码2");
    throw '抛出一个自定义异常';
    console.log("代码3");
} catch (err) {
    console.log(err);
} finally {
    console.log("finally代码块")
}
console.log("代码4");

输出结果:

⚠️⚠️⚠️
注意:try...catch无法处理异步代码。
参考博客:因为一道try...catch的题,我的面试挂掉了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/352865.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线性代数----------学习记录

线性代数发展历程 (1)线性方程组:例如二元一次方程组; (2)行列式:determinant,克莱默,莱布尼兹; (3)矩阵:方程个数与未知数的个数可…

【前端工程化】环境搭建 nodejs npm

文章目录 前端工程化是什么?前端工程化实现技术栈前端工程化环境搭建 :什么是Nodejs如何安装nodejsnpm 配置和使用npm 介绍npm 安装和配置npm 常用命令 总结 前端工程化是什么? 前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块…

JAVAEE初阶 网络编程(五)

TCP协议 一.TCP协议图二. TCP中的关键协议确认应答后发先至机制引入序号和确认序号 超时重传去重机制 建立连接三次握手 一.TCP协议图 我们可以发现,相比于UDP,TCP协议明显复杂很多,比如32位序号和32位确认序号,4位首都长度&#…

前端面试题-js数据类型-怎么判断是对象还是数组-字符串常用方法-数组常用方法

前端面试题-js部分-js数据类型-怎么判断是对象还是数组-字符串常用方法-数组常用方法 JS数据类型有哪些值类型和引用类型的区别数组的常用方法哪些方法会改变原数组 字符串常用方法对象常用方法怎么判断是对象还是数组 JS数据类型有哪些 数据类型类型描述Number基本类型&#…

ANSYS 2023 下载安装教程,附安装包和工具,轻松安装,无套路

前言 ANSYS是一款融结构、流体、电场、磁场、声场分析于一体的大型通用有限元分析(FEA)软件,能与多数计算机辅助设计软件接口,实现数据的共享和交换,如Creo,NASTRAN、Algor、IDEAS、AutoCAD等. 准备工作 1、Win10及以上系统 2、提前准备好…

防火墙的基础知识点

目录 1. 防火墙的意义: 2. 防火墙分类: 3. 防火墙的发展史: 3.1 包过滤 3.2 应用代理 3.3. 状态检测 3.4. 专用设备 3.4.1 入侵检测系统(IDS) 3.4.2 入侵防御系统(IPS) 3.4.3 防病毒网关 (AV) 3.4.4 Web应用防火墙 (WAF) 3.5. 统…

Netty的解码器和编码器

链路图 一个完整的RPC请求中,netty对请求数据和响应数据的处理流程如下图所示 网络线路中传输的都是二进制数据,之后netty将二进制数据解码乘POJO对象,让客户端或者服务端程序处理。 解码的工具称为解码器,是一个入站处理器InBo…

BAT学习笔记:详解环境变量及其所有创建方法

文章目录 一、初识环境变量二、什么是环境变量三、为什么需要环境变量四、环境变量的分类五、环境变量的设置 一、初识环境变量 1.windows 的搜索框中输入 查看高级系统设置。点击打开系统属性窗口。 2. 在系统属性窗口中,点击右下方的“环境变量”打开环境变量设…

Linux服务器配置与管理(第二次实验)

实验目的及具体要求 目的 1.掌握基于命令行的文件操作 2.掌握基于命令行的目录操作 3.掌握用户账户的命令行操作 4.掌握组账户的命令行操作 5.熟悉磁盘分区操作 6.掌握调整优先级的方法 具体要求 1.掌握基于命令行的文件和目录操作 ①创建测试目录 ②创建文件 ③复…

解析MySQL生产环境CPU使用率过高的排查与解决方案

引言 在生产环境中,MySQL作为一个关键的数据库组件,其性能对整个系统的稳定性至关重要。然而,有时候我们可能会遇到MySQL CPU使用率过高的问题,这可能导致系统性能下降,应用页面访问减慢,甚至影响到用户体…

代码随想录算法训练营第十七天 |110.平衡二叉树,257.二叉树的所有路径,404.左叶子之和(待补充)

110.平衡二叉树 1、题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 2、文章讲解:代码随想录 3、题目: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二…

前端工程化之:webpack1-6(编译过程)

一、webpack编译过程 webpack 的作用是将源代码编译(构建、打包)成最终代码。 整个过程大致分为三个步骤: 初始化编译输出 1.初始化 初始化时我们运行的命令 webpack 为核心包, webpack-cli 提供了 webpack 命令,通过…

Go 命令行解析 flag 包之快速上手

本篇文章是 Go 标准库 flag 包的快速上手篇。 概述 开发一个命令行工具,视复杂程度,一般要选择一个合适的命令行解析库,简单的需求用 Go 标准库 flag 就够了,flag 的使用非常简单。 当然,除了标准库 flag 外&#x…

架构整洁之道——价值维度与编程范式

1 设计与架构究竟是什么 结论:二者没有任何区别,一丁点区别都没有。 架构图里实际上包含了所有底层设计细节,这些细节信息共同支撑了顶层的架构设计,底层设计信息和顶层架构设计共同组成了整个架构文档。底层设计细节和高层架构信…

Neo4j 国内镜像下载与安装

Neo4j 5.x 简体中文版指南 社区版:https://neo4j.com/download-center/#community 链接地址(Linux版):https://neo4j.com/artifact.php?nameneo4j-community-3.5.13-unix.tar.gz 链接地址(Windows)&#x…

如何使用react框架进行两个html页面的切换?

如何使用react框架进行两个html页面的切换? 项目背景首先是古老的做法login.htmlindex.html 正文->react框架如何设置两个页面的跳转?配置react框架的环境react框架如何实现两个页面的跳转? 项目背景 古老的html页面跳转的做法无法在react框架中直接适配,所以非常有必要…

MySQL-进阶-索引

一、索引概述 1、介绍 2、有误索引搜索效率演示 3、优缺点 二、索引结构 1、B-Tree(多路平衡查找树) 2、BTree 3、Hash 三、索引分类 四、索引语法 1、语法 2、案例 五、SQL性能分析 1、查看执行频次 2、慢查询日志 3、show-profile 4、explain 六、索…

redis 入门

一、什么是redis? redis是c语言编写的高性能(读的速度是110000次/s,写的速度是81000次/s)的k-v形式的数据库,数据存在内存中 二、redis的使用场景? 数据量小,访问量大 三、redis的启动和关闭 启动: 打开cmd&…

2. HarmonyOS应用开发DevEcoStudio准备-1

2. HarmonyOS应用开发DevEcoStudio准备-1 下载 DevEco Studio 进入HUAWEI DevEco Studio产品页产品页。 单击下载列表右侧的按钮,下载 DevEco Studio。 安装 DevEco Studio 下载完成后,双击下载的 deveco-studio-xxxx.exe,进入 DevEco St…

gitee建库并git

箴言:书山有路勤为径 文章目录 前言一、gitee导入ssh二、gitee建库三、克隆到本地四、关联本地工程到远程仓库五、push流程总结 前言 nodejs每天的学习都有代码产出,转念一想不如在码云上面搞个仓库,也经历了些许波折,往常也建了…
最新文章