栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java中方法签名中的Throw和Throw语句之间的区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中方法签名中的Throw和Throw语句之间的区别

您几乎是正确的。除了一件事,我会稍作提及。

throws 和名称和参数一样,也是方法API的一部分。客户知道他们是否调用该方法,他们需要处理该异常-
通过简单地将其抛出或捕获并处理它(实际上可能需要引发另一个包装原始异常的异常)。 抛出 是在编译时解决的。

throw 是让运行时知道发生了什么不好的事情的实际行为-实际上,我们担心的异常情况已经发生。因此,它需要在运行时处理。

但是当您说“如果方法中存在throw语句时,应该总是出现方法签名中的throws”,您就不太对劲。这通常是正确的,但并非总是如此。我还可以调用另一个在我的方法中引发异常的方法,如果我没有捕获到该异常,则我的方法需要抛出该异常。在那种情况下,我没有明确抛出相同的异常。

最后一点是,仅当异常是已 检查的 异常时才需要在 throws中 声明一个异常-
这意味着它来自RuntimeException的Exception类层次结构的另一侧。常见的检查异常是IOException和SQLException。如果您自己不处理,则必须在方法签名的throws部分中列出已检查的异常。子类RuntimeException的任何子类(如示例中的NoSuchElementException以及讨厌的NullPointerException子类)都是未经检查的异常,无需捕获或抛出。
__

通常,对于可恢复的问题(客户端知道发生了什么并且可以妥善处理问题并继续进行),您可以使用检查异常,而对于灾难性问题(例如无法连接至数据库)则使用检查异常。

如果您可以克服所有AOP问题,那么这将是关于如何有效使用检查和未检查异常的很好的讨论。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428955.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号