异常处理
Java 中的两种异常类型是什么?他们有什么区别?
答:Java 中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常。不受检查的异常
不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并
且不受检查的异常可以传播到方法或者是构造函数的外面。相反,受检查的异常必须要用 throws
语句在方法或者是构造函数上声明。
throw 和 throws 有什么区别?
throw 关键字用来在程序中明确的抛出异常,相反,throws 语句用来表明方法不能处理的异常。每
一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多
个异常是用逗号分隔的。
java 提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是检查式异常(checked
ex ecption)。
检查式异常:我们经常遇到的 IO 异常及 sql 异常就属于检查式异常。对于这种异常,java 编译器
要求我们必须对出现的这些异常进行catch 所以 面对这种异常不管我们是否愿意,只能自己去写一
堆catch 来捕捉这些异常。
运行时异常(未受检):我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从
来没有人去处理过 NullPointerException 异常,它就是运行时异常,并且这种异常还是最常见的异
常之一。