在Java中,我有一个从Exception扩展的Exception类,但每当我抛出它时,编译器都说它需要被捕获/必须声明方法抛出Exception.
当我使用从Exception扩展的RuntimeException时,编译器不会停止,它将它们作为Runtime Exception,我们不需要处理它.
有没有办法让我可以从Exception扩展MyException并将其作为运行时异常.或者是什么使它成为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”的异常都是一个经过检查的异常,而从RuntimeException派生的类是未经检查的.调用代码不需要显式处理RuntimeExceptions.