JS异常处理——throw和try、catch以及debugger

让我为大家介绍一下异常处理吧!
异常处理是指预估代码执行过程中可能发生的错误,然后最大程度的避免错误的发生导致整个程序无法继续运行

throw 抛异常

第一种写法

    function fun(x, y) {
        // undefined是false 但取反就是true
        if (!x || !y) {
            // 第一种写法 会终止程序
            throw "没有传递参数进来"
        }
        return x + y
    }
    fun()

在这里插入图片描述
第二种写法 常用的写法

    function fun(x, y) {
        // undefined是false 但取反就是true
        if (!x || !y) {
            //第二种写法 会终止程序
            throw new Error("没有参数传递进来")
        }
        return x + y
    }
    fun()

会告诉你第几行有问题
在这里插入图片描述
总结:
1.throw 抛出异常信息,程序也会终止执行
2.throw 后面跟的是错误提示信息
3.Error 对象配合 throw 使用,能够设置更详细的错误信息

try / catch 捕获错误信息

我们可以通过 try / catch 捕获错误信息(浏览器提供的错误信息)
try 试试 catch 拦住 finally 最后

<body>
    <div>111</div>
</body>
<script>
    function fun(){
        try {
            // 可能发生错误信息的代码写到try里
            // 我们使用类选择器去获取,但我们没定义类,展示作用
            let div = document.querySelector(".div")
            div.style.color = "pink"
        }catch(err){ //写一个形参
            // 拦截错误,提示浏览器提供的错误信息,但是不中断程序的执行
            console.log(err.message) //查看提示信息
            // 需要终止需要添加return 中断程序
            // return
        }
        finally {
            // 不管程序对不对 一定会执行的代码
            console.log("我一定会执行")
        }
        console.log("不终止,想终止加return")
    }
    fun()
</script>

在这里插入图片描述

总结:
1.try…catch 用于捕获错误信息
2.将预估可能发生错误的代码写在 try 代码段中
3.如果 try 代码段中出现错误后,会执行 catch 代码段,并截获到错误信息
4.finally 不管是否有错误,都会执行

debugger

调试的时候可以加上debugger 相当于直接就是断点
打开调试工具 然后按 F5刷新 即可

在这里插入图片描述
感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!

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

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

相关文章

IMO国际奥林匹克数学竞赛推出AI-MO,奖金高达1000万美元; SDXL Turbo: 新一代文本到图像模型

&#x1f989; AI新闻 &#x1f680; IMO国际奥林匹克数学竞赛推出AI-MO&#xff0c;奖金高达1000万美元 摘要&#xff1a;IMO国际奥林匹克数学竞赛推出新的AI竞赛AI-MO&#xff0c;旨在推动大语言模型的数学推理能力&#xff0c;鼓励开发能与人类数学天才相媲美的AI模型。比…

【论文阅读笔记】Prompt-to-Prompt Image Editing with Cross-Attention Control

【论文阅读笔记】Prompt-to-Prompt Image Editing with Cross-Attention Control 个人理解思考基本信息摘要背景挑战方法结果 引言方法论结果讨论引用 个人理解 通过将caption的注意力图注入到目标caption注意力中影响去噪过程以一种直观和便于理解的形式通过修改交叉注意力的…

二分查找(Java)

二分查找&#xff0c;也称为折半查找&#xff0c;是一种在有序数组中查找特定元素的高效算法。其基本思想是每次将查找范围缩小一半&#xff0c;直到找到目标元素或确定目标元素不存在。 以下是二分查找的详细步骤&#xff1a; 初始化左右边界&#xff1a;将初始查找范围设置…

台灯怎么选对眼睛好?适合考研使用的护眼台灯推荐

现在晚上仍然需要工作、学习的人有很多&#xff0c;这样的一件事似乎已经成为“家常便饭”&#xff0c;尤其事对于一些学生党而言。每天都有写不完的作业、做不完的功课&#xff0c;这样高强度的用眼下来&#xff0c;容易导致眼睛疲劳、近视等等。很多人会选择在夜晚的时候使用…

webpack如何处理css

一、准备工作 新建目录 添加样式 .word {color: red; } index.js添加dom元素&#xff0c;添加一个css word import ./css/index.css;const div document.createElement("div"); div.innerText "hello word!!!"; div.className "word"; do…

(附源码)基于NET学生信息管理系统-计算机毕设 24077

基于NET学生信息管理系统 摘 要 随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;采用C#技术建…

【c++|SDL】开始使用之---demo

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 SDL 记录 1. hello word #include<SDL2/SDL.h>SDL_Window* g_pWindow 0; SDL_Renderer* g_pRenderer 0;int main(int argc, char* args[]) {//…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑不确定性的火电发电商现货-深度调峰市场优化决策》

标题涉及到电力行业的领域&#xff0c;尤其是火电发电商在电力市场中面对深度调峰需求时的决策问题。下面是对标题的解读&#xff1a; 考虑不确定性&#xff1a; 这指的是在制定优化决策时&#xff0c;考虑到环境的不确定性&#xff0c;可能包括但不限于电力市场的价格波动、发…

ASP.NET Core Web API设置响应输出的Json数据格式的两种方式

前言 在ASP.NET Core Web API中设置响应输出Json数据格式有两种方式&#xff0c;可以通过添加System.Text.Json或Newtonsoft.JsonJSON序列化和反序列化库在应用程序中全局设置接口响应的Json数据格式&#xff0c;本文示例使用的是新的Minimal API模式。 JSON序列化和反序列化库…

访问对象的方式

创建对象自然是为了后续使用该对象&#xff0c;我们的Java程序会通过栈上的reference数据来操作堆上的具体对象。由于reference类型在《Java虚拟机规范》里面只规定了它是一个指向对象的引用&#xff0c;并没有定义这个引用应该通过什么方式去定位、访问到堆中对象的具体位置&a…

基于SSM的老年公寓信息管理(有报告)。Javaee项目

演示视频&#xff1a; 基于SSM的老年公寓信息管理&#xff08;有报告&#xff09;。Javaee项目 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringMvc …

【从零开始学习Linux】一文带你了解yum周边生态及vim常见模式

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;Linux入门 &#x1f52d;【从零开始学习Linux】系列均属于Linux入门&#xff0c;主要包含Linux操作系统下的指令、操作、权限以及开发工具&a…

15.Docker-Compose的概念理解及安装

1.Docker-Compose是什么&#xff1f; Docker-Compose是实现对Docker容器集群的快速编排的工具软件。它是Docker官方开源的一个工具软件&#xff0c;可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml.写好多个容器间的调用关系&#x…

佳易王个体诊所管理系统电子处方软件,个体诊所人员服务软件,卫生室配方模板电子病历系统教程

佳易王个体诊所管理系统电子处方软件&#xff0c;个体诊所人员服务软件&#xff0c;卫生室配方模板电子病历系统教程 软件试用版下载可以点击最下方官网卡片 软件功能&#xff1a; 1、配方模板&#xff1a;可以自由添加配方分类&#xff0c;预先设置药品配方&#xff0c;可以…

力扣hot100 最大子数组和 动态规划 分治 无后效性 子问题划分

&#x1f468;‍&#x1f3eb; 题目地址 无后效性 为了保证计算子问题能够按照顺序、不重复地进行&#xff0c;动态规划要求已经求解的子问题不受后续阶段的影响。这个条件也被叫做「无后效性」。换言之&#xff0c;动态规划对状态空间的遍历构成一张有向无环图&#xff0c;遍…

《许犁庭与柔性世界》第二十五章 藤乃伊

“据说虽然内院被外殿层层环绕&#xff0c;可它们却分属不同系统&#xff0c;是也不是&#xff1f;”台下有人问道。 “没错。就算你天赋异禀&#xff0c;外殿九层一路闯将过去&#xff0c;顺利成为命运师。可若是没收到不忍大师的邀请函&#xff0c;也绝无可能进入内院。” “…

NineData:帮助开发者用好数据和云

导语 &#xff1a;数据库工具是指用于创建、设计、管理、开发、维护和优化数据库的一系列软件工具&#xff0c;包括数据库设计工具、数据库迁移与复制、数据库管理工具、数据安全工具等&#xff0c;这些工具可以帮助数据库管理员和开发人员更高效地管理、使用和开发数据库&…

Lambda表达式与方法引用

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 引子 先来看一个案例 …

技巧-PyCharm中Debug和Run对训练的影响和实验测试

简介 在训练深度学习模型时&#xff0c;使用PyCharm的Debug模式和Run模式对训练模型的耗时会有一些区别。 Debug模式&#xff1a;Debug模式在训练模型时&#xff0c;会对每一行代码进行监视&#xff0c;这使得CPU的利用率相对较高。由于需要逐步执行、断点调试、查看变量值等操…

Python hashlib库解析:数据安全加密必备指南

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 哈希函数在计算机科学中扮演着重要的角色。它是一种能够将任意长度的数据转换成固定长度的唯一值的算法。Python提供了hashlib库&#xff0c;用于生成哈希摘要&#xff0c;提供了常见的哈希算法&#xff0c;如MD…