gpt4 book ai didi

java - 在 catch 子句中,当我没有创建任何异常时,如何记录异常实例

转载 作者:行者123 更新时间:2023-12-01 17:32:12 25 4
gpt4 key购买 nike

try{Integer.parse("Abhishek");}
catch(NumberFormatException e){}
catch(Exception e){}

对于上面这段代码,如果发生NumberFormatException,就会立即转到NumberFormatException的catch Cause。但我没有创建 NumberFormatException... 的任何实例,然后创建它。是不是像-一旦发生任何异常,JVM 就会在内部检查异常的类型,并在内部创建该特定异常类型的一个实例,一旦它在 catch 层次结构中注册或找到任何匹配的类型,它就会进入该循环

最佳答案

But I am not creating any instance of the NumberFormatException...

 Integer.parseInt("Abhishek");

如果 String 无法解析为 int,该方法将抛出 NumberFormatException。这是documented in the Javadoc .

As soon as any exception occurs, internally JVM checks the type of exception and internally one instance of that particular Exception type is getting created and once it registers or finds any matching type in the catch hierarchy, it goes to that loop

或多或少...

不过,这并没有真正深入到 JVM 内部。 Integer#parseInt 是用 Java 实现的,就像你自己的程序一样。您可以查看the source code如果您有兴趣。

关于java - 在 catch 子句中,当我没有创建任何异常时,如何记录异常实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9866826/

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