gpt4 book ai didi

java - 在编译时,JVM 如何发现不必要的 CloneNotSupportedException 而不是 Exception?

转载 作者:行者123 更新时间:2023-11-29 03:59:28 25 4
gpt4 key购买 nike


public class MyClass {
public static void method() {
try {
// there is no compile time error for unnecessary catching 'Exception'
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
try {
<b>// why compile time error for unnecessary catching 'MyException' or
// 'CloneNotSupportedException' etc..
// ultimately Exception, MyException & CloneNotSupportedException all
// are checked exception
</b>

} catch (MyException e) {
e.printStackTrace();
}
}
}
class MyException extends Exception {
}

second scenario
---------------
public class MyClass {
public static void method() throws Exception {
}

public static void main(String[] args) {
<b>// if Exception itself is not checked ,
// why compile time error occured for calling method(); ??</b>
method();
}
}



最佳答案

因为 RuntimeExceptions 是 Exception 类的子类。因此,编译器无法确定某些代码是否抛出任何运行时异常,因为它们可能是由 jvm 抛出的。另一方面 - 必须声明由某种方法抛出的已检查异常,以便编译器知道可以抛出哪些异常并可以确定不必要的 catch block 。

关于java - 在编译时,JVM 如何发现不必要的 CloneNotSupportedException 而不是 Exception?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375844/

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