Java中的异常

本文详细解释了Java中的异常处理机制,包括Throwable类、Error与Exception的区别,以及try、catch、finally、throw和throws的关键用法。同时介绍了编译期异常和运行时期异常,以及如何自定义异常以标记业务逻辑中的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常指的并不是语法错误。语法错了,编译不通过,不会产生字节码文件,根本不能运行。
异常:正常语法中的指针,参数内容等等错误导致jvm无法继续运行的情况。
若在编译过程中发现异常,要及时处理

处理之前-------我们先了解下Java的异常体系(如下图):

请添加图片描述
Throwable类是Java程序执行过程中发生的异常事件对应的类的根父类。

Error是指Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等
严重情况。一般不编写针对性的代码进行处理。
Exception是指其它因编程错误或偶然的外在因素导致的一般性问题,需要使用针对
性的代码进行处理,使程序继续运行。否则一旦发生异常,程序也会挂掉

Java的异常处理

5个关键字:try、catch、finally、throw、throws

try: 检测不安全的代码块(发现异常)
try块中任何一条语句发生了异常,下面的代码将不会被执行,所以编程时避免把不相关的代码写进try里
catch: 捕捉异常
一个try后面可以有多个catch分别捕获不同类型的异常,要从子类往父类的顺序写,否则有编译错误
finally: 连接一段必会运行(无论异常与否)的代码块
一段try后只能有一个finally语句
throws: 定义一个方法的时候可以使用throws关键字声明,表示此方法不处理异常,而交给方法调用处进行处理。
throw: 用于显式抛出异常,抛出的时候是抛出的是一个异常类的实例化对象
语法:throw new 异常类构造方法

捕获异常的有关信息(调用异常对象的方法):
getMessage() 获取异常信息,返回字符串
printStackTrace() 获取打印异常类名和异常信息,以及异常出现在程序中的位置

java异常分为两大类:
1.编译期异常(即checked异常、受检异常):编译器在检查程序员代码时发现的异常,若不处理,编译器不会产生字节码文件。通常,这类异常的发生不是由程序员的代码引起的。

2.运行时期异常(即runtime异常、unchecked异常、非受检异常):代码运行才会发生的异常。通常,这类异常是由程序员的代码编写不当引起的,需要自行检查修改代码

自定义异常

是指自己定义的Api中定义的异常类的子类

示例:
public class 异常类名 extends Exception/RuntimeException{
public 异常类名(String msg){
super(msg);
}
}

作用:用自定义异常标记业务逻辑的异常,避免与标准异常混淆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值