gpt4 book ai didi

java - Runtime Exception extends Exception 和 Custom Exception extends from Exception 为什么后一个是编译时异常而另一个不是?

转载 作者:搜寻专家 更新时间:2023-11-01 01:13:34 28 4
gpt4 key购买 nike

在 Java 中,我有一个从 Exception 扩展的异常类,但是每当我抛出它时,编译器都会说它需要被捕获/必须声明方法 throws异常。

当我使用从 Exception 扩展的 RuntimeException 时,编译器不会停止,它将它们视为 Runtime Exception 而我们不需要处理它。

有没有一种方法可以使 MyException 从 Exception 扩展并仍然将其作为运行时异常。?或者是什么使这成为类 RuntimeException

中的可能性
private void compileTime() throws MyException{
throw new MyException();
}

private void runTime() {
throw new MyRuntimeException();
}

class MyException extends Exception {

}
class MyRuntimeException extends RuntimeException {

}

最佳答案

RuntimeException 是未检查异常的子集,用于可以从中恢复的异常。

未经检查的异常不会在编译时检查,这意味着编译器不需要方法来捕获或指定(通过抛出)它们。

The unchecked exceptions classes are the class RuntimeException and its subclasses, and the class Error and its subclasses. All other exception classes are checked exception classes.

请通过此图像检查异常层次结构: exception hierarchy

简而言之,派生自“Exception”的任何异常都是已检查的异常,而派生自RuntimeException 的类是未检查的。 RuntimeExceptions 不需要由调用代码显式处理。

关于java - Runtime Exception extends Exception 和 Custom Exception extends from Exception 为什么后一个是编译时异常而另一个不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14435829/

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