Java中的异常处理


编译时异常是一定要处理的异常,如读取文件找不到、类加载找不到等;
而运行时异常可以不处理,如类型转换异常、空指针、数组角标越界、除0等;因为太多了,都处理会降低程序性能。

对于try-catch-finally的处理:

catch捕获try的异常后,无论是否有return,都执行finally中的代码;
如果在try-catch-finally中没有return,则处理完异常后继续执行后续代码,即使你在catch中执行了e.printStackTrace();控制台报红了,但这种报红是catch中人为的一种处理方式,后续代码仍会执行!

throw

如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。
如果一个异常对象通过调用次序层层上抛,最终一定要有一个try-catch进行处理,throw只上抛异常,而try-catch才是真正处理异常

自定义异常

一般处理的是运行时异常;
需要继承RunTimeException或者Exception,实现空参构造器和字符串构造器,添加序列版本号;

手动异常抛出

当程序执行不符合人为预期时,但此时没有发生程序自带的异常时,可以手动throw new Exception(“手动抛出异常信息”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毋小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值