Java 异常处理,超详细整理,适合新手入门

目录
前言
抛出异常
捕获异常
处理异常
finally块
总结
前言
当Java程序中出现错误或异常时,通常会抛出一个异常。Java的异常处理机制使得我们可以在程序运行过程中捕获这些异常并采取相应的措施,以便程序能够正常运行或者优雅地停止。
抛出异常
在Java中,当程序发生错误或异常时,可以使用throw关键字抛出一个异常。例如:
if (x == 0) {throw new ArithmeticException("除数不能为0");
}
捕获异常
在Java中,我们可以使用try-catch语句来捕获异常。在try块中编写可能会引发异常的代码,在catch块中编写处理异常的代码。例如:
try {//可能会抛出异常的代码
} catch (ExceptionType e) {//处理异常的代码
}
其中,ExceptionType表示捕获的异常类型,可以是Java中任何一个异常类的名称,如ArithmeticException、NullPointerException等等。当在try块中的代码发生了与ExceptionType相匹配的异常时,程序会跳转到catch块中执行相应的代码。
处理异常
在catch块中,我们可以根据实际需要编写相应的处理代码,比如打印错误信息、重新抛出异常、继续执行其他代码等等。例如:
try {//可能会抛出异常的代码
} catch (ArithmeticException e) {System.out.println("除数不能为0");
} catch (NullPointerException e) {System.out.println("对象引用为空");
} catch (Exception e) {System.out.println("未知异常:" + e.getMessage());
}
在上面的例子中,我们通过捕获不同的异常类型来处理不同类型的异常,最后一个catch块则是处理所有其他未被上面的catch块捕获的异常。
finally块
除了try-catch语句之外,Java还提供了finally块,用于编写在try-catch语句执行完毕之后一定要执行的代码,无论是否发生异常。例如:
try {//可能会抛出异常的代码
} catch (ExceptionType e) {//处理异常的代码
} finally {//一定会执行的代码
}
在上面的例子中,无论try-catch块中的代码是否抛出异常,finally块中的代码都一定会被执行。在finally块中通常会放置释放资源等必须执行的代码。
总结
Java异常处理的基本流程是:先抛出异常,然后使用try-catch语句捕获异常并进行处理,最后使用finally块执行必须执行的代码。熟练掌握异常处理技
相关文章:
Java 异常处理,超详细整理,适合新手入门
目录 前言 抛出异常 捕获异常 处理异常 finally块 总结 前言 当Java程序中出现错误或异常时,通常会抛出一个异常。Java的异常处理机制使得我们可以在程序运行过程中捕获这些异常并采取相应的措施,以便程序能够正常运行或者优雅地停止。 抛出异常 在…...
23年了,GOPATH和go.mod 还在冲突!
现在 新配了 go环境 设置了GOROOT,GOPATH ,发现引用别的包会出问题。一直会报 package XX not in GOROOT (xxxx)我的目录:我的开发目录: /home/fate/go_projects/老样子,下面有 /home/fate/go_…...
Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。(极简解决办法)
一、遇到问题。 在需要启动Redis客户端的时候,会发现会报这个错误。报这个错误的原因就是Redis的服务端没有开启,那Redis的客户端是访问不了的 二、解决办法。 1.解决的办法就是要启动服务端,让这个客户端可以访问到。启动服务端最简单不会…...
华为OD机试 - 优雅数组(Python)【2023-Q1 新题】
华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 优雅数组 | 华为…...
【概念辨析】数组指针指针数组
目录 一、数组指针 二、指针数组 三、 数组指针的数组名不是二级指针 再来说最关键的:数组指针为什么不是二级指针呢? 代码如下: 四、指针数组的数组名是二级指针 在复习,在考试,在焦虑。 又一次学习到了数组指针和指针…...
python实战应用讲解-【语法基础篇】字典的创建及建模(附示例代码)
目录 创建和使用字典 函数 dict 代码清单4-1列出了创建电话簿数据库的代码。...
华为OD机试真题Python实现【分糖果】真题+解题思路+代码(20222023)
分糖果 题目 小明从糖果盒中随意抓一把糖果 每次小明会取出一半的糖果分给同学们 当糖果不能平均分配时 小明可以从糖果盒中(假设盒中糖果足够)取出一个或放回一个糖果 小明至少需要多少次(取出放回和平均分配均记一次)能将手中糖果分至只剩一颗 🔥🔥🔥🔥🔥👉�…...
视频技术基础知识
一、视频图像基础 像素:图像的基本单元,即一个带有颜色的小块分辨率:图像的大小或尺寸,用像素个数来表示。原始图像分辨率越高,图像就越清晰位深:存储每位像素需要的二进制位数;位深越大&#…...
Windows应用之——设置定时关机
一 概述 本文介绍window设置自动关机的两种方式: cmd指令设置自动关机任务计划程序设置自动关机第三方定时关机软件 二 cmd指令设置自动关机—不推荐 2.1 自动关机-开启(管理员模式下) 依次点击‘“开始”,在“搜索程序和文件”中输入cmd,…...
华为OD机试真题Python实现【 喊七】真题+解题思路+代码(20222023)
喊七 题目 喊 7,是一个传统的聚会游戏, N 个人围成一圈,按顺时针从1 - 7编号, 编号为1的人从1开始喊数, 下一个人喊得数字是上一个人喊得数字+1, 但是当将要喊出数字7的倍数或者含有7的话, 不能喊出,而是要喊过。 假定N个人都没有失误。 当喊道数字k时, 可以统计每…...
国产蓝牙耳机哪个好用?国产好用的蓝牙耳机推荐
现如今,国产蓝牙耳机越来越受到人们关注,国产蓝牙耳机近几年的发展愈发迅猛,配置上相对于非国产蓝牙耳机来说也毫不逊色。那么,国产蓝牙耳机哪个好用?下面,我来给大家推荐几款好用的蓝牙耳机,一…...
JAVA虚拟机JVM之内存模型
内存模型 java 内存模型 很多人将【java 内存结构】与【java 内存模型】傻傻分不清,【java 内存模型】是 Java Memory Model(JMM)的意思。 关于它的权威解释,请参考 https://download.oracle.com/otn-pub/jcp/memory_model-1.0…...
Java线程——常见方法
一、 常见方法 1.1 概述 ① start_vs_run:直接调用run方法并不会启动新的线程 import cn.itcast.n2.util.FileReader; import lombok.extern.slf4j.Slf4j;Slf4j(topic "c.Test") public class Test {public static void main(String[] args) {Thread t…...
机器学习:基于逻辑回归对某银行客户违约预测分析
机器学习:基于逻辑回归对某银行客户违约预测分析 文章目录机器学习:基于逻辑回归对某银行客户违约预测分析一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤1.逻辑回归2.业务理解3.读取数据4.数据理解5.数据准备6.逻辑回归模型训练7.模型评…...
MySQL数据库常用命令汇总(全网最全)
目录 数据库常用命令 数据库的创建 数据表的操作 表数据的增删查改 分组与函数查询 运算符:数学运算符 连接查询 多表查询 修改语句 删除语句 字符查询like MySQL练习 总结感谢每一个认真阅读我文章的人!!! 重点&…...
Bulletproofs++
1. 引言 前序博客: Bulletproofs: Short Proofs for Confidential Transactions and More学习笔记Bulletproofs 代码解析Bulletproofs: Shorter Proofs for Privacy-Enhanced Distributed Ledger学习笔记Bulletproofs 代码解析 Liam Eagen 2022年3月论文《Bullet…...
毕业设计(1)-AFLGO的安装
AFLGO是一个模糊测试工具,在CSDN上的安装教程不多,自己在安装过程中也出现了很多教程之外的错误,最后反复安装了2天终于安装成功这里记录一下安装工程中的错误 使用的平台:Ubuntu18.04 配置: 内存:6G&…...
基于Opencv的缺陷检测任务
数据及代码见文末 1.任务需求和环境配置 任务需求:使用opencv检测出手套上的缺陷并且进行计数 环境配置:pip install opencv-python 2.整体流程 首先,我们需要定义几个参数。 图像大小,原图像比较大,首先将图像resize一下再做后续处理图像阈值处理的相应阈值反转阈值的…...
Android Gradle脚本打包
1、背景资料 1.1 Android-Gradle-Groovy-Java-JVM 之间的关系 1.2 Android Gradle Plugin Version版本 与 Gradle Version版本的对应关系 Android Gradle Plugin Version版本Gradle Version版本1.0.0 - 1.1.32.2.1 - 2.31.2.0 - 1.3.12.2.1 - 2.91.5.02.2.1 - 2.132.0.0 -…...
平滑KDJ指标公式,减少无效金叉死叉
软件自带的KDJ指标比较敏感,在震荡上涨或者震荡下跌时会反复出现金叉死叉信号,不利于指标的使用以及进一步开发。为了减少无效金叉死叉,本文对KDJ指标公式进行平滑处理。 一、KDJ指标对比 以下为软件自带的KDJ指标,加上了图标。本…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
