gpt4 book ai didi

java - 特定类型异常捕获比一般类型异常捕获快吗?如果快的话比率是多少?

转载 作者:行者123 更新时间:2023-12-01 16:03:40 24 4
gpt4 key购买 nike

我想知道像 NullPointerException ex 这样的特定异常比 Exception ex 更快。

例如,我的代码抛出 NullPointerException

try {
...
} catch (NullPointerException e) {
...
}

try {
...
} catch (Exception e) {
...
}

哪个更快?我认为异常系统取决于标志,因此由于控制较少,特定类型的速度更快。但我想知道。

如果答案是肯定的,请说出原因?谢谢。

不是:您认为代码没有任何崩溃。

最佳答案

通常的警告适用...确保您不这样做 optimize prematurely 。编程是为了清晰而不是速度。如果程序太慢,请使用分析器来查找问题。

假设Java并且没有抛出异常,它们同样快。 athrow操作永远不会被调用,因此不会对异常表执行任何查找,也不需要进行异常类匹配。

如果您在 try 语句中抛出异常,并使用单个特定异常处理程序来匹配该异常,则异常表查找将比一般异常类稍微更快地匹配特定异常类,因为它不会沿着类层次结构向上查找匹配的祖先类。我的意思是,您应该节省少于 10 个 CPU 指令,并且抛出的异常应该非常罕见。

如果你抛出各种异常并且有多个catch block ,那么情况就太复杂了,无法说捕获单个共同祖先类的异常会更快还是更慢;这取决于细节。

Kaffe's exception.c 中的函数 findExceptionBlockInMethod显示了异常匹配代码的一种实现。

关于java - 特定类型异常捕获比一般类型异常捕获快吗?如果快的话比率是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3163955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com