韩顺平0基础学java——第22天

p441-459

异常exception

选中代码块,快捷键ctr+alt+t+6,即trt-catch

如果进行了异常处理,那么即使出现了异常,但是会继续执行

程序过程中发生的异常事件分为两大类:

异常体系图※

常见的运行异常:类型转换,下标越界,空指针异常,数学运算(比如1/0)

异常处理

1.try-catch

try-catch-finally

如果没有finally语法也是可以通过的。

注意细节:

1.如果异常发生了,那么try中异常后面的代码不执行,直接进入catch块

2.如果异常没有发生,那么顺序执行try块,不进入catch块

3.如果try代码块有多个异常,可以使用多个catch分别捕获不同的异常,相应处理。要求子类异常写在前面,父类异常写在后面。

4.可以直接进行try-finally,这种写法相当于没有捕获异常,因此程序会直接崩溃。应用场景:执行一段代码,不论是否发生异常,都必须执行某个业务逻辑。

这就是把异常踢皮球到了JVM,它打出了异常信息然后崩溃了...

2.throws(抛出)

踢皮球,不想自己解决(try-catch-finally)就丢给前面那个人(throws)

最后踢皮球到JVM:直接输出异常信息,然后退出程序。

细节注意:0450_韩顺平Java_tryCatch练习_哔哩哔哩_bilibili

如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,此种方法应该显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。

在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类

throws和try小结

1.对于编译异常,程序中必须处理,比如try-catch或者throws

2.对于运行异常,程序中如果没有处理,默认就是throws的方式处理,丢到JVM给你报错。并不要求显示处理!!

3.子类重写父类的方法时,对抛出异常的规定:子类重写的方法所抛出的异常类型要么和父类抛出的异常一致,要么为父类抛出的异常的类型的子类型。(儿子犯的错不能比父亲的更大,不然老爹处理不了)

自定义异常

当程序中出现了某些“错误”,但是该错误信息并没有在Throwable子类中描述处理,这个时候可以自己设计异常类,用于描述该错误信息。

自定义的步骤:

1、定义类名,继承Exception或者RuntimeExpection

2.如果继承Exception那就是编译异常。

3.如果继承RuntimeException 那就是运行异常,一般来说继承RuntimeException

throws和throw的区别

比如:

if(true){

        throw new AgeException(“需要满足规定!”);

}

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

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

相关文章

vs2019 c++20规范 STL 库中头文件 <atomic> 源码注释及探讨几个知识点

(1 探讨一) 模板类 atomic 的继承关系与数据结构如下: (2 探讨二 ) 可见 atomic 的 fetch_xx 函数,返回的都是 atomic 中存储的旧值。测试如下: 谢谢

【MySQL】mysql中常见的内置函数(日期、字符串、数学函数)

文章目录 案例表日期函数字符串函数数学函数其他函数 案例表 emp students 表 exam_result 表 日期函数 注意current_time和now的区别 案例一: 创建一张表用来记录生日,表结构如下 添加日期: insert tmp (birthday) values (2003-01-3…

永磁同步电机滞环电流控制(PI双闭环)matlab仿真模型

微♥“电击小子程高兴的MATLAB小屋”获取模型 1.滞环电流控制的原理 将给定的电流信号与反馈的电流信号进行比较,然后控制它俩之间的差值稳定在一个滞环范围内,若超出范围,则进行相应的调节操作。 操作如下叙述:假设以三相中的A相…

【Android面试八股文】Thread.sleep()方法被调用之后可以被中断吗?

面试官:你能告诉我 Thread.sleep() 方法是否是可中断的吗?如果是,能解释一下如何中断它吗? 候选人:是的,Thread.sleep() 方法是可中断的。当一个线程正在调用 sleep() 方法时,如果另一个线程调用了这个睡眠线程的 interrupt() 方法,那么正在睡眠的线程会抛出 Interrup…

unDraw —— 免费且可定制的插画库,为您的设计注入灵魂

🎨 unDraw —— 免费且可定制的插画库,为您的设计注入灵魂 在寻找能够完美融入您品牌风格的插画吗?unDraw,一个提供大量免费插画资源的网站,可能是您的理想选择! 🌐 网站特色 免费且开源 unDraw…

站易WordPress

站易WordPress是一家专业提供网站建设和运营服务的公司。他们提供的服务包括企业官方网站建设、网站运营维护、网站托管、网站优化、跨境独立站建站、外贸网站建设以及海外多语言网站建设等。 此外,站易还提供使用现成的WordPress模板,这样可以快速且低…

项目太大导致报错:JavaScript堆内存已满

1.问题 启动一个Vue项目的时候遇到了如下的报错 Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 无效的标记压缩导致接近了堆上限,分配失败 - JavaScript内存不足 2.解决方法 我查阅了网上的资料,似乎…

udp协议下的socket函数

目录 1.网络协议 2.网络字节序 3.socket编译接口 4.sockaddr结构体 5.模拟实现 1.socket函数 2.bind函数&#xff08;绑定&#xff09; 1.讲解 1.如何快速的将 整数ip<->字符串 2.ip地址的注意事项 3.端口号的注意事项 3.recvfrom函数 4.sendto函数 5.代码呈…

不测评不知道,该这款主食冻干嚣张!PR、希喂、扑呀真实测评

主食冻干喂养越来越火了&#xff0c;除了知名的“四大金刚”K9、VE、SC、PR之外&#xff0c;也有像希喂、扑呀这类以营养、高肉含量为切入点的新锐品牌&#xff0c;各大猫粮商更是纷纷推出了自家的主食冻干产品。目前关于主食冻干的讨论也很多&#xff0c;但大多数还是以科普和…

江苏哪些行业需要服务器托管?

服务器托管顾名思义就是用户委托具有完善设备的机房、良好网络和丰富运营经验的服务商管理其计算机系统&#xff0c;使企业的服务器能够更加安全、稳定和高效的运行&#xff0c;那在江苏都有哪些行业需要服务器托管服务呢&#xff1f;本文就来大概介绍一下。 首先让我们来一起了…

spring管理的对象通过@Init注解修饰的方法不会在new对象的时候触发

Spring 管理的对象的初始化(init)函数并不会在 new 对象的时候自动触发,而是在 Spring 容器创建和初始化对象的时候触发。 Spring 容器管理对象的初始化过程包括以下几个步骤: 1 实例化对象 - Spring 容器使用构造函数或工厂方法创建对象实例。 注入属性 - Spring 容器会自动…

活久见!谁想的这种办法让大模型PK

文&#xff5c;白 鸽 编&#xff5c;王一粟 “每个大模型看起来都差不多&#xff0c;只能谁便宜先用谁的。但用下来之后&#xff0c;不合适再换&#xff0c;又费钱又费力”&#xff0c;一位AI 招聘公司的创始人对光锥智能抱怨道。 2024年&#xff0c;大模型正在加速走向行…

【Apollo配置中心】集成springboot自动监听属性变更和动态发布配置

1. 背景 在实际项目中&#xff0c;Spring Boot项目结合使用Apollo配置中心时&#xff0c;经常会遇到需要更新Apollo上的项目的一些配置&#xff0c;比如测试环境或生产环境中&#xff0c;需要修改某个类的属性值&#xff0c;如果我们在Apollo上更新了配置&#xff0c;已经在运…

因数与倍数 初级题目

最近又来更题了。这一次是《第三单元 因数与倍数第一部分》的初级题目。 参考答案见文尾 参考答案&#xff1a; CBDAABCBBACCCCCBCDCC

构建高效API的基本原则

在现代软件开发中&#xff0c;API&#xff08;应用程序编程接口&#xff09;扮演着至关重要的角色。一个高效且可靠的API能够极大地提升软件开发效率和应用性能。以下是构建高效API的一些基本原则&#xff0c;这些原则将帮助开发者设计出既高效又易于维护的API。 首先&#xf…

3389端口修改工具,修改3389端口的操作

3389端口作为远程桌面协议&#xff08;RDP&#xff09;的默认端口&#xff0c;常常成为黑客攻击的目标。为了提高系统的安全性&#xff0c;修改3389端口成为一项重要的安全措施。本文将详细介绍如何使用3389端口修改工具进行专业操作&#xff0c;以确保系统的安全稳定。 一、备…

Linux系统最大打开文件数量配置

Linux系统最大打开文件数量配置 前言概念&#xff1a;分为当前进程和系统最大文件数。 查看当前进程的最大打开文件数量 ulimit -n ,ulimit -a-a参数可以展示出详细的参数&#xff0c;即我们可以对什么资源做限制。系统资源被定义在***/etc/security/limits.conf***的文件中&am…

项目经验:别啥事都跟甲方讲

看过一个港片&#xff0c;片名一时想不起来了&#xff08;脑子不好&#xff0c;根本记不住多少名字&#xff09;&#xff0c;情节大概是一个学拍电影的副导演和一个职业杀手&#xff0c;副导演给杀手拍片记录杀人过程给金主看&#xff0c;电影蛮逗的&#xff0c;里面一个情节挺…

【JS重点11】解构赋值-对象解构

对象解构是将对象属性和方法快速批量赋值给一系列变量的简洁语法 一&#xff1a;基本语法 const obj {uname: 微木,age: 10}const { uname, age } objconsole.log(uname, age); 对象解构的变量名要与解构对象中属性名相同&#xff0c;否则就会返回undefined解构的变量名不能…

计算机网络(3) 字节顺序:网络字节序与IPv4

一.小端与大端 小端&#xff08;Little endian&#xff09;&#xff1a;低字节保存在内存低地址&#xff0c;高字节保存在内存高地址。 大端&#xff08;Big endian&#xff09;&#xff1a;低字节保存在内存高地址&#xff0c;高字节保存在内存低地址。 例如&#xff08;14…