当前位置: 首页 > news >正文

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

目录

前言

抛出异常

捕获异常

处理异常

finally块

总结


前言

当Java程序中出现错误或异常时,通常会抛出一个异常。Java的异常处理机制使得我们可以在程序运行过程中捕获这些异常并采取相应的措施,以便程序能够正常运行或者优雅地停止。

抛出异常

在Java中,当程序发生错误或异常时,可以使用throw关键字抛出一个异常。例如:

if (x == 0) {throw new ArithmeticException("除数不能为0");
}

捕获异常

在Java中,我们可以使用try-catch语句来捕获异常。在try块中编写可能会引发异常的代码,在catch块中编写处理异常的代码。例如:

try {//可能会抛出异常的代码
} catch (ExceptionType e) {//处理异常的代码
}

其中,ExceptionType表示捕获的异常类型,可以是Java中任何一个异常类的名称,如ArithmeticExceptionNullPointerException等等。当在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&#xff0c…...

华为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指标,加上了图标。本…...

雀魂AI助手Akagi:革新麻将竞技的智能决策系统

雀魂AI助手Akagi:革新麻将竞技的智能决策系统 【免费下载链接】Akagi 支持雀魂、天鳳、麻雀一番街、天月麻將,能夠使用自定義的AI模型實時分析對局並給出建議,內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Riichi City, Amatsuki, wit…...

ThinkBook 16 2024款装Ubuntu 22.04,无线网卡和蓝牙驱动修复保姆级教程

ThinkBook 16 2024款Ubuntu 22.04无线与蓝牙驱动终极解决方案 刚拿到新款ThinkBook 16 2024的开发者们,在享受其强悍性能的同时,可能都会遇到一个共同的烦恼——安装Ubuntu 22.04后无线网卡和蓝牙无法正常工作。这并非硬件故障,而是由于Intel…...

AI编程助手功能解锁:开源破解方案与开发工具权限绕过技术探索

AI编程助手功能解锁:开源破解方案与开发工具权限绕过技术探索 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached y…...

【初学者说—C语言】

大家好!我是一名计算机网络技术专业的学生,刚刚开始接触C语言,感到无比有趣。当然我并非是一时兴起来学C语言的,我学习C语言是为了跟好拿到offer, 为自己在这AI迭代更新迅速的时代谋求生路。学习代码是一个长久的过程,…...

掌控微信数据:从信息丢失到价值挖掘的完整解决方案

掌控微信数据:从信息丢失到价值挖掘的完整解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMs…...

雷石KTV惊艳7000系列专用云猫点歌系统刷机包|含刷机工具+硬盘系统文件|实测一键成功|可复刻部署

温馨提示:文末有联系方式 产品概览:专为雷石惊艳7000系列深度适配的云猫点歌系统刷机套件 本套件包含经实测验证的云猫点歌系统刷机包、配套刷机工具及完整硬盘系统文件,全面兼容雷石KTV惊艳7000系列主机。 所有组件已在多台设备上完成稳定刷…...

Intv_AI_MK11 跨平台开发应用:基于 Qt 框架的桌面智能助手

Intv_AI_MK11 跨平台开发应用:基于 Qt 框架的桌面智能助手 1. 为什么需要跨平台智能助手 在日常工作和学习中,我们经常遇到这样的场景:在Windows上收集的资料,想在Mac上继续编辑;在Linux服务器上开发的代码&#xff…...

自定义用户模型开发:从AbstractBaseUser到完整认证流程

自定义用户模型开发:从AbstractBaseUser到完整认证流程 【免费下载链接】django-react-redux-base Seedstars Labs Base Django React Redux Project 项目地址: https://gitcode.com/gh_mirrors/dj/django-react-redux-base 在Django开发中,自定义…...

终极Fuel测试指南:使用MockWebServer编写可靠的Kotlin网络测试

终极Fuel测试指南:使用MockWebServer编写可靠的Kotlin网络测试 【免费下载链接】fuel The easiest HTTP networking library for Kotlin/Android 项目地址: https://gitcode.com/gh_mirrors/fu/fuel Fuel是Kotlin平台最简单易用的HTTP网络库,专为…...

OpenClaw健康检查:Qwen3-32B镜像长期运行的资源监控方案

OpenClaw健康检查:Qwen3-32B镜像长期运行的资源监控方案 1. 为什么需要健康检查? 去年冬天的一个深夜,我的OpenClaw自动化脚本突然停止了工作。第二天早上才发现,原来是Qwen3-32B模型进程因为显存泄漏悄悄崩溃了。这次事故让我意…...