Java方法包含另一个抛出异常的方法
在方法A内部,有方法B。方法B抛出异常,但方法A即使不捕获异常或抛出异常,也会抛出异常,这可能吗 方法B如下所示:Java方法包含另一个抛出异常的方法,java,Java,在方法A内部,有方法B。方法B抛出异常,但方法A即使不捕获异常或抛出异常,也会抛出异常,这可能吗 方法B如下所示: MethodB() throws SomeException{ if(Some) doneSomething return else if(some) donesomethingElse return throw SomeException } 如果SomeException扩展。那么即使签名
MethodB() throws SomeException{
if(Some)
doneSomething
return
else if(some)
donesomethingElse
return
throw SomeException
}
如果
SomeException
扩展。那么即使签名看起来像那样,你也不需要捕捉它
还请注意,在这种情况下,您只需删除抛出某些异常的
。阅读更多信息。是的,存在一些未检查的异常,这些异常可能不会被捕获/重新捕获
请看本教程-。即使SomeException
是选中的异常,也可能由于单独编译而发生这种情况
假设您编写了一个类:
public class B {
public static void foo() {
}
}
然后是一个调用它的类:
public class A {
public static void main(String[] args) {
B.foo();
}
}
然后说:
javac A.java
java A
一切都很好。现在改变B:
public class B {
public static void foo() throws java.io.IOException {
throw new java.io.IOException();
}
}
这次只需在运行之前编译B:
javac B.java
java A
你会得到:
Exception in thread "main" java.io.IOException
at B.foo(B.java:4)
at A.main(A.java:4)
在现实世界中,当单个.jar文件被不理解添加更多throws
子句所导致问题的维护人员修改后被更新时,就会发生这种情况。是的,SomeException
是RuntimeException
的子类。