再牛的大神也不能保证自己写的代码完美无缺,人总会犯错。正确的处理异常,才能使写的程序更加健壮,更加可靠。
Java在设计之初就考虑了异常处理机制,Java能成为常青树语言,相对完善的处理机制功不可没。现在异常处理机制已经是编程语言的标配。那在面试过程中,面试官如果问你对Java的异常处理机制是怎么理解的,该如何作答呢?
答:
Java异常处理要么是选择是catch住,要么是选择throw出去。Throwable是Java异常处理机制的基本类型,只有Throwable的实例才能被catch或者throw。
Exception和Error都继承了Throwable,它们分别代表了不同的异常。
Exception是程序运行中可以预料到的异常情况,可以也应该被捕获并进行相应处理。
Error是正常情况下不会出现的情况,绝大部分会使程序无法恢复,所以它也不需要捕获处理,如OutOfMemoryError。
Exception又分为受检异常和运行时异常。受检异常必须被处理,是会在编译过程中发现的异常,如ClassNotFoundException。
运行时异常在编译阶段是发现不了的,是在程序运行过程中出现的异常,通常是通过正确的编码可以避免的错误,如NullPointerException。