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

news/2024/11/25 3:05:35/

目录

前言

抛出异常

捕获异常

处理异常

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块执行必须执行的代码。熟练掌握异常处理技


http://www.ppmy.cn/news/27253.html

相关文章

01 软件基础22222

1 软件介绍 SWMM(Storm Water Management Model)是一款用于城市暴雨径流模拟和城市雨水管理的计算机软件。SWMM软件最初由美国环保局(EPA)开发,现在已经成为一个广泛使用的软件,用于设计、规划和管理城市排…

【C语言进阶】结构体、位段、枚举、以及联合(共用体)的相关原理与使用

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C语言进阶 🎯长路漫漫浩浩,万事皆有期待 文章目录1.结构体1.1 概述&a…

Redis四 原理篇

《Redis四 原理篇》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《Redis四 原理篇》《Redis四 原理篇》1、原理篇-Redis数据结构1.1 Redis数据结构-动态字符串1.2 Redis数据结构-intset1.3 Redis数据结构-Dict1.4 Redis数据结构-ZipList1.4.1 Redis数据…

【双指针问题】LeetCode344、345、 844、283问题详解及代码实现

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

《计算机网络:自顶向下方法》实验5:NAT协议分析 Wireshark实验

实验12:NAT协议分析 1 What is the IP address of the client? 客户端的 IP 地址是192.168.1.100 2 The client actually communicates with several different Google servers in order to implement “safe browsing.” (See extra credit section at the end of this la…

JavaSE之常用关键字学习

文章目录Java常用关键字学习1、static关键字学习1.1 用法一:修饰成员变量1.2 用法二:修饰成员方法1.3 用法三:修饰代码块1.4 用法四:修饰内部类类1.5 单例设计模式2、extends关键字学习2.1 继承的特点2.2 方法重写3、this、super关…

来来来挑战一下micropython 并口8080 py驱动

https://github.com/kdschlosser/lv_binding_micropython 地址在这了,挖个坑,有时间就来一下,目测有戏。

浏览器跨域问题

跨域问题什么是跨域问题如何解决跨域问题JSONPCORS方式解决跨域使用 Nginx 反向代理使用 WebSocket跨源请求是否能携带Cookie什么是跨域问题 跨域问题指的是不同站点之间,使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为…