赞
踩
Java中存在两种异常,一种是checked exception,一种是unchecked exception。
区别1:
checked exception 必须被显式的抛出或者捕获,比如FileNotFoundException,就是一个必须处理的异常。
unchecked exception 不用被显式的抛出或者捕获,比如NullPointerException,没见过代码里面需要捕获或者抛出这个异常的吧。
区别2:
checked exception继承Exception类
unchecked exception 继承RuntimeException类
创建两个类CheckedExceptionA和UnCheckedExceptionB:
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 及其子类。
java中CheckException和UnCheckException的区别
Java异常:选择Checked Exception还是Unchecked Exception?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。