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

Java 即使从不抛出异常,使用try-catch块是否昂贵?

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

Java 即使从不抛出异常,使用try-catch块是否昂贵?

try
几乎没有任何花销。
try
代码的元数据不是在运行时进行设置,而是在编译时进行结构化,这样,当引发异常时,它现在执行相对昂贵的操作,即遍历堆栈并查看是否
try
存在任何可捕获此异常的块。例外。从外行的角度来看,它
try
可能也是自由的。它实际上是在抛出导致你付出代价的异常-但是,除非你抛出数百或数千个异常,否则你仍然不会注意到成本。

try
有一些与此相关的小费用。Java无法对代码
try
块中的代码进行其他优化,而在其他方面则无法做到。例如,Java经常会重新安排方法中的指令以使其运行更快-但Java还需要保证,如果引发异常,则将观察该方法的执行,就像执行源代码中编写的语句一样为了达到某条线。

因为在一个try块中可以抛出一个异常(在

try
块的任何行上!有些异常是异步抛出的,例如通过调用
stop
一个
Thread
(已弃用),甚至OutOfMemoryError几乎可以在任何地方发生),但是它可以捕获并以相同的方法继续执行代码,因此很难对可以进行的优化进行推理,因此不太可能发生优化。(有些人必须对编译器进行编程,以进行推理,保证正确性等。对于要成为“例外”的东西,这将是一个巨大的痛苦。)但是,实际上,你不会注意到这样的事情。



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

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

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