Java异常面试常考题

1.Exception和Error的区别
答:Exception和Error都是Throwable的子类,Exception是可以预料的情况,可以去捕获处理的。而Error是正常情况下不太可能出现的情况,大部分Error会导致程序的崩溃,使程序处于不可恢复的状态,如StackOverflowError,OutOfMemoryError
2.运行时异常和一般异常的区别
受检查的异常是在编译时强制检查的异常,在方法中声明的异常,如ClassNotFoundException、IOException,而运行时异常在运行时候我们需要避免的,根据需求确定是否处理,在编译时不会强制检查
3.写出几种常见的运行时异常
NullPointerException 、IndexOutOfBoundsException、ClassCastException、NumberFomateException
4.ClassNotFoundException 和 NoClassDefFoundError
当类加载器加载一个类时候,如果在classpath中没有找到这个类,就会出现ClassNotFoundException,如加载jdbc驱动时,NoClassDefFoundError并不关心catch的问题,当JVM加载一个类时候,在编译时通过,运行时找不到这个类就会报NotClassDefFoundError,比如使用框架的时候某个框架组件依赖于某个jar包,而没有导入,就会报NoClassDefFoundError,当然也可能是·版本不一致
5.throw和throws的区别
throw是在方法体内部手动抛出的异常,一次只能抛出一个异常对象,有方法体处理,如果方法体不处理,就会交给上层处理,就要在方法上声明throws,throws在方法声明,表明该方法可能出现的异常,不做任何处理向上层传递
6.你对异常有什么了解?
本题是一个开放性的题目,可以从多个角度,比如异常分类、Exception和Error的区别、等等
尽量不要捕获Exception这样的通用异常,要捕获可能出现的特定异常
不要生吞异常,即捕获异常后不处理,当然也不要捕获后打印异常,要把异常输出到日志文件中
try catch会增加系统的开销,要在指定的地方捕获异常,不要大段的捕获
减少用异常进行流程控制 异常会有频繁的快照,发生频繁会增加系统开销

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值