异常基础和面试常考点

目录

1.异常分类

2.使用异常的注意点

3.异常性能分析

4.常见面试题

1.throw和throws的区别?


1.异常分类

Exception和Error都是继承了Throwable类

Exception是程序正常运行中,可以预料的意外情况,可以捕获进行相应的处理。

Error是正常情况下,不大可能出现的情况,导致程序中断,不需要捕获。如OOM溢出

Exception又可以分为:检查时异常和非检查时异常,检查时异常,必须显示的捕获,非检查时异常,就是所谓的运行时异常(空指针异常,类转换异常等等),通常可以通过编码的方式去解决逻辑错误问题

2.使用异常的注意点

1.永远不要catch中吞掉异常,否则在系统发生错误时,你永远不知道到底发生了什么

2.尽量使用特定的异常而不是一律使用Exception这样太泛泛的异常,可能会误吞异常

3.不要使用printStackTrace 使用日志输出更好

4.错误发生时,应该及早抛出,然后在获得所有全部信息时,再捕获处理。也可以理解为在低层次抛出的异常,在足够高的抽象层面才能更好的理解异常,然后捕获处理。

5.对于使用一些重量级资源的操作,发生异常的时候。一定要记得清理try-catch-finaly

3.异常性能分析

异常实例的构造是十分昂贵的,会增加性能的消耗

1.尽量少使用异常。使用if/else代替

2.减小try-catch的代码块大小

4.常见面试题

1.throw和throws的区别?

throw是语句报错一个异常,一般在代码块的内部,当程序出现某种逻辑错误的时候,由程序员主动抛出的异常

throws是方法可能抛出异常的声明,当一个方法可能会抛出某种异常时,然后交给上层调用这个方法的程序处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值