跳到主要内容

Java throw和throws有什么区别?

参考答案:

1.throw是语句抛出一个异常,一般是在代码块的内部,当程序出现某种逻辑错误时由程序员主动抛出某种特定类型的异常
2.throws是声明一个异常,写在方法函数头
3.当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理
4.throws出现在方法函数头;而throw出现在函数体.throws表示出现异常的一种可能性,并不一定会发生这些异常; throw则是抛出了异常,执行throw则一定抛出了某种异常对象。两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
5.如果try块中抛出了一个在catch子句中说明的异常类,throw后面的语句无法执行,如果写了语句,是无法通过编译的。
6.无论是否抛出异常finally语句块最终都会执行