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

是否应将java try块的作用域设置得尽可能紧密?

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

是否应将java try块的作用域设置得尽可能紧密?

这里的基本前提是 错误的:

try
块的大小不会影响性能。性能实际上受运行时引发异常的影响,而这与
try
块的大小无关。

但是,将try块保持较小可能会导致更好的程序。

您可能会捕获异常以进行恢复并继续,或者您可能仅捕获异常以将其报告给调用方(或通过某些UI通知给人类)。

在第一种情况下,可以从中恢复的故障通常是非常具体的,这会导致较小的

try
障碍。

在第二种情况下,捕获到一个异常,以便可以将其包装到另一个异常中并重新抛出或显示给用户,小块

try
意味着您可以更准确地知道哪个操作失败了,以及在哪个更高级别的上下文中那个电话被打了。这使您可以创建更具体的错误报告。

当然,这些准则还有……例外(抱歉!)。例如,在某些情况下,非常具体的错误报告可能是安全问题。


知道

try
块对编译后的代码有什么影响可能很有用。它根本不会改变编译的指令!(当然,相应的代码
catch
块也可以,因为它就像其他任何代码一样。)

try
块创建与该方法相关联的异常表中的条目。该表具有一系列源指令计数器,异常类型和目标指令。引发异常时,将检查此表以查看是否存在具有匹配类型的条目以及包含引发异常的指令的范围。如果是这样,执行分支到相应的目标号码。

要意识到的重要一点是,除非需要该表,否则不会对其进行查询(并且不会影响运行性能)。(忽略了类加载的一些开销。)



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

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

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