【基础笔记】unchecked异常和checked异常 Java

本文深入解析Java中的异常处理机制,区分checked与unchecked异常,探讨Error类、RuntimeException类及其子类的特点,以及finally语句的执行特性。通过实例代码,展示不同类型的异常如何影响程序的编译与运行。
摘要由CSDN通过智能技术生成

java中,将所有派生于Error类和RuntimeException类的异常称为unchecked异常(蓝色部分);其它的异常称为checked异常(粉色部分)。

程序中不需要处理Error类和RuntimeException类及其子类的异常,而所有的checked异常必须进行处理,否则会报编译错误。

注意:

finally永远会被执行。

try语句可以只有finally子句,而没有catch子句,也可以只有catch子句,没有finally子句。

例子:

【分析】下面两段代码在编译时有何区别?
public static void main(String args[]) {
throw new IOException();
}
public static void main(String args[]) {
throw new NullPointerException();
}

//第一个是unchecked异常,不会报编译错误;第2个是checked异常,未处理,会报编译错误
finally子句中如果有return语句,则可能会掩盖原始的返回值。分析下列代码:
public static void main(String[] args) {
System.out.println("" + getValue());
}
private static int getValue() {
int z = 0;
try {
z = 8 / 0;  //算术异常
return z;
} catch (Exception e) {
return 7;
} finally {
return 8;
}
}
//输出结果一直为8

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值