异常

Java异常是一个对象,所有异常都直接或间接的继承Throwable类,异常层次结构如图:

 

Error类代表错误,指程序无法恢复的异常情况,常见的Error类例如内存溢出StackOverflowError等。

 

Exception类代表异常,指程序有可能恢复的异常情况,分为RuntimeException和checkedException两种。

checkedException可检查异常,需要在编码时进行处理的,如IOException等。

RuntimeException运行时异常,是在程序运行时发生的异常,无法预先捕捉处理。

 

异常经常通过try catch语句块来进行处理,也可以通过throws/throw将错误抛出到上层处理

finally用在catch语句块后面,无论是否发生异常,finally代码块总会被执行

在jdk7之后,提供了语法糖,更优雅的解决方式 try-with-resource

try (FileInputStream inputStream = new FileInputStream(new File("test"))) {
    System.out.println(inputStream.read());
} catch (IOException e) {
    throw new RuntimeException(e.getMessage(), e);
}

 对代码反编译发现仍使用了finally进行处理

 

可以通过继承已有的Exception类来自定义异常,通常使用try catch捕获处理,如果需要向外抛出,可继承RuntimeException类

 

spring中可以通过注解@ControllerAdvice,@ExceptionHandler(Exception.class)来自定义异常处理

转载于:https://www.cnblogs.com/jhin-wxy/p/11494717.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值