韩顺平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(“需要满足规定!”);

}

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

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

相关文章

继承深度剖析

前言 从继承开始就开始C进阶了, 这一块需要好好学习,这块知识很重要, 坑有点多,所以是面试笔试的常客。 基本概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段, 它允许程序员在保持原有…

使用MNIST数据集训练手写数字识别模型

一、MNIST数据集介绍 MNIST 数据集(手写数字数据集)是一个公开的公共数据集,任何人都可以免费获取它。目前,它已经是一个作为机器学习入门的通用性特别强的数据集之一,所以对于想要学习机器学习分类的、深度神经网络分…

抓包工具 Wireshark 的下载、安装、使用、快捷键

目录 一、什么是Wireshark?二、Wireshark下载三、Wireshark安装四、Wireshark使用4.1 基本使用4.2 过滤设置1)捕获过滤器2)显示过滤器 4.3 过滤规则1)捕获过滤器-规则语法2)显示过滤器-规则语法 4.4 常用的显示过滤器规…

js实现一个数据结构——栈

栈的概念就不再赘述,无可厚非的先进后出,而JS又是高级语言,数组中的方法十分丰富,已经自带了push pop方法进行入栈出栈的操作。 1.基本实现 class Stack {constructor() {this.items [];}// 入栈push(item) {this.items.push(i…

【C++入门(1)】命名空间

一、C出世 我们先简单认识下C的来历,C是在C语言的基础上发展来的。 当年C的设计者Bjarne Stroustrup,本贾尼斯特劳斯特卢普先生设计C语言之初,是为了对C语言做出一些更改,弥补C语言在一些方面的不足,或者做出其他的设…

二阶段提交(2pc)协议

二阶段提交(2pc)协议 1、 简介 二阶段提交算法是一个分布式一致性算法,强一致、中心化的原子提交协议,主要用来解决分布式事务问题。在单体spring应用中我们往往通过一个Transactional注解就可以保证方法的事务性,但…

破解发展难题 台山这家合作社以农业社会化服务助推乡村振兴

风吹稻田千层浪,眼下,台山四九镇的早稻长势喜人,沉甸甸的稻穗迎风而动,已进入破口抽穗的关键期,即将在6月底陆续迎来丰收。在台山市明华汇种养专业合作社管理的稻田里,合作社负责人梁明喜正仔细观察着稻苗的…

算法第六天:力扣第977题有序数组的平方

一、977.有序数组的平方的链接与题目描述 977. 有序数组的平方的链接如下所示:https://leetcode.cn/problems/squares-of-a-sorted-array/description/https://leetcode.cn/problems/squares-of-a-sorted-array/description/ 给你一个按 非递减顺序 排序的整数数组…

#慧眼识模每日PK[话题]##用五种语言说爸爸我爱你[话题]#

#慧眼识模每日PK #用五种语言说爸爸我爱你 你觉得哪个模型回答得更好?欢迎留言 A.蓝 B.紫 更多问题,扫码体验吧~ by 国家(杭州)新型交换中心

Whisper语音识别 -- 自回归解码分析

前言 Whisper 是由 OpenAI 开发的一种先进语音识别系统。它采用深度学习技术,能够高效、准确地将语音转换为文本。Whisper 支持多种语言和口音,并且在处理背景噪音和语音变异方面表现出色。其广泛应用于语音助手、翻译服务、字幕生成等领域,为…

鸿蒙轻内核A核源码分析系列七 进程管理 (3)

本文记录下进程相关的初始化函数,如OsSystemProcessCreate、OsProcessInit、OsProcessCreateInit、OsUserInitProcess、OsDeInitPCB、OsUserInitProcessStart等。 1、LiteOS-A内核进程创建初始化通用函数 先看看一些内部函数,不管是初始化用户态进程还…

收银系统小程序商城商品详情页再升级!

本期导读 1.新增:商品详情页新增商品参数模块; 2.新增:商品详情页新增保障服务模块; 3.新增:线上商城商品新增划线价; 4.新增:线上商城分销商品新增“赚”字标签及预收收益; 5.…

Linux-笔记 全志平台OTG虚拟 串口、网口、U盘笔记

前言: 此文章方法适用于全志通用平台,并且三种虚拟功能同一时间只能使用一个,原因是此3种功能都是内核USB Gadget precomposed configurations的其中一个选项,只能单选,不能多选,而且不能通过修改配置文件去…

我的考研经历

当我写下这篇文章时,我已经从考研 的失败中走出来了,考研的整个过程都写在博客日志里面了,在整理并阅读考研的日志时,想写下一篇总结,也算是为了更好的吸取教训。 前期日志模板:时间安排的还算紧凑&#x…

安鸾学院靶场——安全基础

文章目录 1、Burp抓包2、指纹识别3、压缩包解密4、Nginx整数溢出漏洞5、PHP代码基础6、linux基础命令7、Mysql数据库基础8、目录扫描9、端口扫描10、docker容器基础11、文件类型 1、Burp抓包 抓取http://47.100.220.113:8007/的返回包,可以拿到包含flag的txt文件。…

DDei在线设计器-配置主题风格

DDeiCore-主题 DDei-Core插件提供了默认主题和黑色主题。 如需了解详细的API教程以及参数说明,请参考DDei文档 默认主题 黑色主题 使用指南 引入 import { DDeiCoreThemeBlack } from "ddei-editor";使用并修改设置 extensions: [......//通过配置&am…

【FreeRTOS】内存管理

目录 1 为什么要自己实现内存管理2 FreeRTOS的5中内存管理方法2.1 Heap_12.2 Heap_22.3 Heap_32.4 Heap_4 2.5 Heap_53 Heap相关的函数3.1 pvPortMalloc/vPortFree3.2 xPortGetFreeHeapSize 3.3 xPortGetMinimumEverFreeHeapSize3.4 malloc失败的钩子函数 参考《FreeRTOS入门与…

Python私教张大鹏 Vue3整合AntDesignVue之DatePicker 日期选择框

案例&#xff1a;选择日期 <script setup> import {ref} from "vue";const date ref(null) </script> <template><div class"p-8 bg-indigo-50 text-center"><a-date-picker v-model:value"date"/><a-divide…

原子阿波罗STM32F429程序的控制器改为STM32F407驱动LCD屏

原子大神的阿波罗开发板使用STM32F429IGT6控制器&#xff0c;编程风格也与探索者F407系列有了很大的不同&#xff0c;使用BSP功能模块编程了&#xff0c;也有点类似于安富莱的编程风格了。这种模块式程序风格的优点是更加方便移植&#xff0c;更方便泡系统。 但无奈手里只有F40…