如何理解java中checked exception和unchecked exception

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?

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ExceptionJava的一个类,用于处理程序运行时出现的异常Exception可以分为两类:已检查异常和未检查异常。已检查异常在程序编译阶段就需要进行处理,未检查异常则不需要强制处理。常见的异常包括NullPointerException、IndexOutOfBoundsException、IOException等。 ### 回答2: 在JavaException异常)是一种可能发生的错误或异常情况的表现。它是Java编译器或运行时环境(JVM)用于表示非正常情况的一种类。 Exception类是所有异常类的父类,它定义了异常的基本属性和行为。当程序发生异常时,会抛出一个异常对象,该对象会被传递给调用栈的上层,直到被处理为止。 Java异常分为两种类型:可经检查异常Checked Exception)和不可经检查异常Unchecked Exception)。可经检查异常需要在代码显式地进行处理,以避免编译错误,如IOException和ClassNotFoundException。而不可经检查异常则是指那些RuntimeException及其子类异常,编译器不会强制要求明确的异常处理,如NullPointerException和ArrayIndexOutOfBoundsException。 对于异常的处理,可以使用try-catch块来捕获并处理异常。在try块,放置可能会触发异常的代码;而在catch块,可以对异常进行捕获并做相应的处理,有助于提高程序的健壮性和可靠性。此外,还可以使用throws关键字将异常继续抛出,使得上一层的调用者可以处理异常。 通过合理地使用异常处理机制,可以使得程序能够更好地处理错误和异常情况,增强程序的稳定性和可扩展性。异常处理是Java重要的编程概念,也是保障程序运行的重要保证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值