Java中异常(异常的处理方式(JVM默认的处理方式、自己处理(灵魂四问)、抛出异常(throws、throw))、异常中的常见方法、小练习、自定义异常)

news2025/7/15 6:17:46

 

 编译时异常:在编译阶段,必须要手动处理,否则代码报错(提醒程序员检查本地信息)

运行时异常:在编译阶段是不需要处理的,是代码运行时出现的异常(代码出错而导致程序出现的问题)

 

 

异常作用一:异常是用来查询bug的关键参考信息

异常作用二:异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况

 

异常的处理方式:①JVM默认的处理方式

1.把异常的名称,异常原因及异常出现的位置等信息输出在了控制台

2.程序停止执行,异常下面的代码不会再执行了

                             ②自己处理

 

 

 

 灵魂一问:会把try里面所有的代码全部执行完毕,不会执行catch里面的代码(注意点:只有当出现了异常才会执行catch里面的代码)

灵魂二问:会写多个catch与之对应(注意点:如果我们要捕获多个异常,这些异常如果存在父子关系的话,那么父类一定要写在下面;在JDK7之后,我们可以在catch中同时捕获多个异常,中间用  |  进行隔开,表示如果出现了A异常或B异常的话,采取同一种处理方案)

 

灵魂三问:相当于try……catch白写了,当前异常会交给虚拟机处理

灵魂四问:不会执行了。try中遇到问题,直接跳转到对应的catch。如果没有对应的catch与之匹配,则交给虚拟机处理

异常中的常见方法:

 

 

 

③抛出异常 

 

 

 

 

小练习:

 

 

 

 

我们通过上面的练习,当我们的姓名和年龄发生错误时,我们使用的是throw new RuntimeException(),但其实这样表达并不准确

我们可以写一个异常类继承于RuntimeException(当运行产生异常)或者Exception(编译时产生异常) 

 

 

 

 

 

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

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

相关文章

3D软件开发工具HOOPS 2023 更新亮点合集——增强了对建筑环境和自然环境中3D图形的真实感

HOOPS SDK是全球领先开发商TechSoft 3D旗下的原生产品,专注于Web端、桌面端、移动端3D工程应用程序的开发。长期以来,HOOPS通过卓越的3D技术,帮助全球600多家知名客户推动3D软件创新,这些客户包括SolidWorks、SIEMENS、Oracle、Ar…

Java高级-----多线程

多线程JAVA高级--多线程1、基本概念:程序、进程、线程1.1进程与线程1.2使用多线程的优点1.3何时需要多线程2、线程的创建和使用2.1线程的创建和启动2.2Thread 类2.3API 中创建线程的四种方式2.3.1方式一继承 Thread 类2.3.1.1 步骤2.3.1.2创建过程中的两个问题说明2…

JMU软件20 计算机网络复习

文章目录题型单位换算第一章协议与划分层次、网络协议的三个组成要素,分层的思想等协议网络协议的三个组成要素分层的思想⭐计算机网络体系结构OSI 的七层协议TCP/IP 的四层协议五层协议发送时延、传播时延、总时延、往返时间RTT计算第二章 物理层传输媒体导向性传输…

如何用SaleSmartly完善您的实时聊天页面

众所周知,第一印象在业务中非常重要,需要确保您的网站是可以促进您与客户之间的顺畅联系。想想您访问商家联系页面时,你通常看到什么?可能是用于发送电子邮件的对话框,也可能是要呼叫的电话号码,虽然这是一…

【LeetCode】剑指 Offer(18)

目录 题目:剑指 Offer 35. 复杂链表的复制 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer 35. 复杂链…

Mysql8.0的特性

Mysql8.0的特性 建议使用8.0.17及之后的版本,更新的内容比较多。 新增降序索引 -- 如下所示,我们可以在创建索引时 在字段名后面指定desc进行降序排序 create table t1(c1 int,c2 int,index idx_c1_c2(c1,c2 desc));group by 不再隐式排序 mysql5.7的版…

使用Chakra-UI封装简书的登录页面组件(React)

要求:使用chakra ui和react 框架将简书的登录页面的表单封装成独立的可重用的组件使用到的API:注册API请求方式:POST 请求地址:https://conduit.productionready.io/api/users请求数据: {"user":{ "username&quo…

typora-beta-0.11.18版本又提示过期的解决方案

很实用,所以照搬一下下面的作者的回答,省得以后再找~~~ 知乎的作者来源如下: 作者:吴小皓 链接:typora打开报错:This beta version of Typora is expired, please download and install a newer version …

Servlet | Servlet简单入门——构建第一个Servlet项目

本专栏主要是记录学习JavaWeb中的Servlet相关知识点,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址:🔥Servlet Java入门篇: 🔥Java基础学习篇 Java进阶学习篇(持续更新中)&am…

AAAI2023 | VBLC:恶劣条件下针对领域自适应语义分割的可见度增强和逻辑值约束...

点击蓝字关注我们AI TIME欢迎每一位AI爱好者的加入!李明嘉:北京理工大学硕士研究生,目前研究方向为迁移学习、语义分割。内容简介:在实际系统中,要求将在正常视觉条件下训练的模型推广到不利条件下的目标域。一种普遍的…

Cacti监控讲解

Cacti监控讲解 1、Cacti原理的概述 组件构成: 组合框架:LAP数据收集:SNMP 这个是简单的网络管理协议监控的必须使用的协议;SNMP Apache:web页面提供; 动态共享模块功能; 绘制图形&#xff1a…

Python图像处理:频域滤波降噪和图像增强

图像处理已经成为我们日常生活中不可或缺的一部分,涉及到社交媒体和医学成像等各个领域。通过数码相机或卫星照片和医学扫描等其他来源获得的图像可能需要预处理以消除或增强噪声。频域滤波是一种可行的解决方案,它可以在增强图像锐化的同时消除噪声。 …

Linux:利用返回值传出参数,地址传递,值传递,使用回调函数赋值几个例程。

利用返回值传出参数&#xff0c;地址传递&#xff0c;值传递,使用回调函数赋值几个例程。 代码&#xff1a; #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string…

C++ 算法主题系列之集结0-1背包问题的所有求解方案

1. 前言 背包问题是类型问题&#xff0c;通过对这一类型问题的理解和掌握&#xff0c;从而可以归纳出求解此类问题的思路和模板。 背包问题的分类有&#xff1a; 0-1背包问题&#xff0c;也称为不可分割背包问题。无限背包问题。判定性背包问题.带附属关系的背包问题。双背包…

如何提高软件测试执行力

高效的测试执行力 不管在哪个行业&#xff0c;高校的执行力都是不可或缺的。在软件测试行业更是这样。有些测试人员&#xff0c;很勤奋也很吃苦&#xff0c;但是可能最终不能很好的完成测试任务。究其原因就是一个测试执行力的问题。 高效执行就是有目标&#xff0c;有计划&…

BUUCTF [羊城杯 2020]easyre 题解

一.查壳 64位无壳 二.主函数逻辑 可以得知flag长度为38,然后进行三次加密 第一次加密是base64加密,得到code1 第二次加密是将code1拆成四段赋给code2 第三次加密是将code2内的数字和字母移3位,其他字符不变 str2保存的是最终的加密字符 三.encode_one_base64 看到主函数…

【Linux】Sudo的隐晦bug引发的一次业务问题排查

Sudo的隐晦bug引发的一次业务问题排查写在前面问题描述问题排查高负载现象排查日志排查跟踪任务调度过程Sudo引发的问题手动复现问题分析处理方案写在前面 记录一次生产环境sudo启动进程频繁被Kill且不报错的异常处理过程&#xff0c;如果遇到同样的问题只想要解决方案&#x…

AWS攻略——初识流量镜像

在实际应用场景下&#xff0c;我们可能需要建立一个测试环境&#xff0c;既能接线上流量&#xff0c;又不希望影响线上业务&#xff0c;这个时候流量镜像就派上用场。它会将一个网络接口中的流量复制到另外一个网络接口中&#xff0c;然后在后者上分发&#xff0c;而前者不受影…

AQS 源码解读

一、AQS AQS 是 AbstractQueuedSynchronizer 的简称&#xff0c;又称为同步阻塞队列&#xff0c;是 Java 中的一个抽象类。在其内部维护了一个由双向链表实现的 FIFO 线程等待队列&#xff0c;同时又提供和维护了一个共享资源 state &#xff0c;像我们平常使用的 ReentrantLo…

OpenCV-PyQT项目实战(12)项目案例08:多线程视频播放

欢迎关注『OpenCV-PyQT项目实战 Youcans』系列&#xff0c;持续更新中 OpenCV-PyQT项目实战&#xff08;1&#xff09;安装与环境配置 OpenCV-PyQT项目实战&#xff08;2&#xff09;QtDesigner 和 PyUIC 快速入门 OpenCV-PyQT项目实战&#xff08;3&#xff09;信号与槽机制 …