如何理解java中checked exception和unchecked exception

本文详细解析了Java中的两类异常:checked exception与unchecked exception的区别,并通过示例代码进行了展示。此外还探讨了在生产环境中如何合理地选择这两类异常。

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

Java中存在两种异常,一种是checked exception,一种是unchecked exception

两者区别
  • 区别1:
    checked exception 必须被显式的抛出或者捕获,比如FileNotFoundException,就是一个必须处理的异常。
    unchecked exception 不用被显式的抛出或者捕获,比如NullPointerException,没见过代码里面需要捕获或者抛出这个异常的吧。

  • 区别2:
    checked exception继承Exception类
    unchecked exception 继承RuntimeException类

举个栗子:

创建两个类CheckedExceptionAUnCheckedExceptionB

class CheckedExceptionA extends Exception {

}
class UnCheckedExceptionB extends RuntimeException {

}

创建一个Handle类使用他们时,CheckedExceptionA必须处理,UnCheckedExceptionB则不需要

public class Handle {

    public void handleChecked(){
        try {
            throw new CheckedExceptionA();
        } catch (CheckedExceptionA checkedExceptionA) {
            checkedExceptionA.printStackTrace();
        }
    }

    public void handleUnChecked(){
        throw new UnCheckedExceptionB();
    }
}
生产环境如何选择

很明显checkedException编译器会显示的提醒,不会忘记处理异常,UnCheckedException会使得代码精简,没有大量捕获代码,效率更高。
对于unchecked类型,如果忘记处理异常可能会导致项目流程中断。
对于两者的选择,仍然不应该太死板,需要根据实际需要进行选择,如果出现了该异常后我们需要捕捉到进行一些处理,这样我们就选用checked类型,但如果出现某种异常需要中断程序,那么可以采用unChecked类型

补充

unchecked exception不只有RuntimeException及其子类,还有Error 及其子类。

END
参考

java中CheckException和UnCheckException的区别
Java异常:选择Checked Exception还是Unchecked Exception?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值