throw 与 throws 的区别学习笔记
Java 关键字 throw 与 throws 的区别:
throw 与 throws 都属于 Java 抛出异常的方式。
throw
throw 是语句抛出一个异常,一般是在代码块的内部,当程序出现某种逻辑错误时由程序员主动抛出某种特定类型的异常。
作用在方法内,表示抛出具体异常,由方法体内的语句处理。
具体向外抛出的动作,所以它抛出的是一个异常实体类。若执行了 throw 一定是抛出了某种异常。
throw 则是用来抛出一个具体的异常类型。
throws
当某个方法可能会抛出某种异常时用于 throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理。
作用在方法的声明上,表示如果抛出异常,则由该方法的调用者来进行异常处理。
主要的声明这个方法会抛出某种类型的异常,让它的使用者知道捕获异常的类型。
出现异常是一种可能性,但不一定会发生异常。
throws 用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。
区别
throw 出现在代码块(函数体中),throws 出现在方法函数头。
throw 是抛出了异常,执行 throw 则一定抛出了某种异常对象;throws 表示出现异常的一种可能性,并不一定会发生这些异常。
两者都是消极处理异常的方式,只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/983123ade195ba18333118580】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论