编程笔记 html5cssjs 081 JavaScript 异常处理语句

编程笔记 html5&css&js 081 JavaScript 异常处理语句

  • 一、结构和语法:
  • 二、示例:
  • 总结

在JavaScript中,异常处理主要通过 try...catch...finally 语句实现。这个结构允许你捕获并处理程序运行时可能出现的错误(即异常),确保即使发生错误,程序也可以进行适当的响应而不是立即终止执行。

一、结构和语法:

try {// 尝试执行这里的代码块// 如果这段代码抛出一个异常,控制流会立即跳转到相应的 catch 块throw new Error('An example error'); // 手动抛出一个异常
} catch (error) {// 当 try 块中的代码抛出异常时,控制流来到这里// error 变量将包含抛出的异常对象console.error('Caught an error:', error.message);// 在这里可以处理错误、记录日志或提供备用逻辑
} finally {// 不论 try 或 catch 块中是否有异常发生,最终都会执行 finally 块里的代码// 这个部分常用于资源清理工作,如关闭文件、网络连接等console.log('This will always execute');
}

二、示例:

try {// 模拟读取可能不存在的属性let obj = {};let value = obj.nonExistentProperty;
} catch (e) {// 捕获TypeError: Cannot read property 'nonExistentProperty' of undefinedconsole.error("An error occurred:", e.message);// 提供备选值let value = 'default';
} finally {console.log('The program continues to run after the error handling.');
}// 处理异步Promise错误的例子
async function fetchAndProcessData() {try {const response = await fetch('https://api.example.com/data');if (!response.ok) {throw new Error(`API responded with status ${response.status}`);}const data = await response.json();// 处理数据...} catch (error) {console.error('Failed to fetch or process data:', error.message);// 错误恢复或通知用户} finally {console.log('Network request is completed regardless of success or failure.');}
}
fetchAndProcessData();

总结

在上述示例中,try 块尝试执行可能引发异常的操作,当出现异常时,程序不会崩溃,而是进入 catch 块处理错误。无论是否发生异常,finally 块都会被执行,用于执行必须完成的任务,比如释放资源或提供状态更新。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回归预测 | Matlab实现OOA-CNN-LSTM-Attention鱼鹰算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制)

回归预测 | Matlab实现OOA-CNN-LSTM-Attention鱼鹰算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制) 目录 回归预测 | Matlab实现OOA-CNN-LSTM-Attention鱼鹰算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制&…

C#通过文件头判断flv文件

目录 效果 代码 效果 代码 private void button1_Click(object sender, EventArgs e) { string path Application.StartupPath "\\test.flv"; //3byte 总是FLV(0x46 0x4C 0x56) byte[] Type new byte[3]; using (FileStre…

探索微服务治理:从发展到实践构建高效稳定的系统| 微服务的度量

随着软件行业的不断发展,微服务架构凭借其高度的灵活性、可扩展性和可维护性,逐渐成为企业应用的主流架构风格。然后微服务架构的复杂性也带来了一系列的挑战,其中之一就是如何有效地管理和治理微服务。本文灸哥给你详细介绍和服务治理相关的…

SQL 表信息 | 统计 | 脚本

介绍 统计多个 SQL Server 实例上多个数据库的表大小、最后修改时间和行数,可以使用以下的 SQL 查询来获取这些信息。 脚本 示例脚本: DECLARE Query NVARCHAR(MAX)-- 创建一个临时表用于存储结果 CREATE TABLE #TableSizes (DatabaseName NVARCHAR…

Java学习笔记2024/2/3

1. 方法 1.1 什么是方法 package com.angus.method.whatIsTheMethod_1;public class note {public static void main(String[] args) {//什么是方法//方法是程序当中最小的执行单元//调用方法和使用数组很类似//方法->方法名//数组->数组名->地址值//什么时候用到方…

2024 AI 前端:回首展望,光芒未至,破晓之前!

前言 回望 2023 年,ChatGPT 的突然爆火,让 AI 无疑成为最为值得注目的新兴领域之一,我们也一起见证了生成式 AI 的寒武纪大爆发。这一年来,国内外的生成式 AI 、大模型和相关产品以令人眼花缭乱的速度更新迭代,新的创业…

服务器性能监控管理方法及工具

服务器是组织数据中心的主干,无论是优化的用户体验,还是管理良好的资源,服务器都能为您完成所有工作,保持服务器随时可用和可访问对于面向业务的应用程序和服务以最佳水平运行至关重要。 理想的服务器性能需要主动监控物理和虚拟…

JavaScript内嵌函数是传值还是传址

在一般编程语言中, 参数都是"传值", 假设一个C函数的原型是int Fun(int value); 当你调用这个函数时, Fun函数首先会在自己的函数栈上copy一份参数, 就是这个函数的副本, 当你在Fun外部修改value值, 并不会影响Fun内部的value. 而Javascript的内嵌函数很特殊, 如果传…

LeetCode 133:克隆图(图的深度优先遍历DFS和广度优先遍历BFS)

回顾 图的Node数据结构 图的数据结构&#xff0c;以下两种都可以&#xff0c;dfs和bfs的板子是不变的。 class Node {public int val;public List<Node> neighbors;public Node() {val 0;neighbors new ArrayList<Node>();}public Node(int _val) {val _val;…

windows10 利用DDNS-GO解析IPV6 IPV4 阿里云 腾讯云 华为云

这里写目录标题 [工具包DDNS-GO Windows 版](https://github.com/jeessy2/ddns-go/releases)创建ddns-go windows服务打开浏览器 输入127.0.0.1:9876 就可以使用ddns-go解析ipv4 或者 IPV6 了创建的服务已经在windows的服务管理里面自动启动了 工具包DDNS-GO Windows 版 创建dd…

C++:模板

C&#xff1a;模板 函数模板显式实例化模板参数缺省参数匹配规则 类模板类名与类型类成员的声明定义分离 非类型模板参数模板特化函数模板特化类模板特化全特化偏特化部分特化限制特化 在讲解模板前&#xff0c;我提出一个问题&#xff1a; 如何实现一个通用的swap交换函数&…

StringBuffer和StringBuilder的区别,设计目的

StringBuffer和StringBuilder是Java编程语言中用于处理字符串的两个类&#xff0c;它们在功能上非常相似&#xff0c;都用于创建可变的字符串。然而&#xff0c;它们之间存在一些关键的区别&#xff0c;主要体现在线程安全性和性能上。这两个类的设计目的反映了不同的使用场景需…

Java中的main方法和可变参数

目录 分析main方法形参为String[] 那么实参到底是什么&#xff1f;可变参数实例 分析main方法 在Java中&#xff0c;main方法是程序的入口点。当你运行一个Java程序时&#xff0c;JVM&#xff08;Java虚拟机&#xff09;会寻找一个名为main的方法&#xff0c;并从这里开始执行…

html2canvas 截图功能使用 VUE

html2canvas 是一个 JavaScript 库&#xff0c;可以将网页内容转换为 Canvas 元素&#xff0c;并生成图像或 PDF 文件。使用 html2canvas&#xff0c;你可以在客户端将网页的内容截图&#xff0c;并将其作为图像或 PDF 文件保存或分享。 以下是一些 html2canvas 库的特点和用途…

LeetCode 0292.Nim 游戏:脑筋急转弯

【LetMeFly】292.Nim 游戏&#xff1a;脑筋急转弯 力扣题目链接&#xff1a;https://leetcode.cn/problems/nim-game/ 你和你的朋友&#xff0c;两个人一起玩 Nim 游戏&#xff1a; 桌子上有一堆石头。你们轮流进行自己的回合&#xff0c; 你作为先手 。每一回合&#xff0c…

【NTN 卫星通信】基于NTN的多3GPP连接应用场景

1 概述 同时聚合两条3GPP接入链路&#xff0c;其中一条为非地面网络&#xff0c;可以提供以下5G业务使能&#xff0c;尤其适用于带宽有限或接入链路不可靠的服务不足地区:   -扩展流动宽频   -超可靠的服务通信 如技术报告38.821所述&#xff0c;若干服务场景(例如在偏远地…

【算法题】91. 解码方法

题目 一条包含字母 A-Z 的消息通过以下映射进行了 编码 &#xff1a; A -> "1" B -> "2" ... Z -> "26" 要 解码 已编码的消息&#xff0c;所有数字必须基于上述映射的方法&#xff0c;反向映射回字母&#xff08;可能有多种方法&…

缓存组件Caffeine的使用

caffeine是一个高性能的缓存组件&#xff0c;在需要缓存数据&#xff0c;但数据量不算太大&#xff0c;不想引入redis的时候&#xff0c;caffeine就是一个不错的选择。可以把caffeine理解为一个简单的redis。 1、导入依赖 <!-- https://mvnrepository.com/artifact/com.git…

STM32F407 CAN参数配置 500Kbps

本篇CAN参数适用 芯片型号&#xff1a;STM32F407xx系统时钟&#xff1a;168MHz&#xff0c;CAN挂载总线APB1为42M波 特 率 &#xff1a;500Kpbs引脚使用&#xff1a;TX_PB9&#xff0c;RX_PB8&#xff1b;修改为PA11PA12后&#xff0c;参数不变。 步骤一、打勾开启CAN&#xf…

百面嵌入式专栏(面试题)网络编程面试题

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍网络编程面试题 。 1、什么是IO多路复用 I/O多路复用的本质是使用select,poll或者epoll函数,挂起进程,当一个或者多个I/O事件发生之后,将控制返回给用户进程。以服务器编程为例,传统的多进程(多线程…