[英]Java - try & catch in calling methods
我在Java中有一个基本问题:
我有两个方法: functionA
和functionB
。 functionA
调用functionB
,而functionB
引发异常。 要将呼叫functionB
处于试范围functionA
。
现在我也希望functionA
能够实现它的捕获范围。
有什么方法可以做到吗?
如果有异常抛出methodB
和你抓住它,把它传播到一个办法methodA
是重新抛出:
void methodB() throws SomeException {
try {
//Something that can throw SomeException
} catch (SomeException e) {
//rethrow e
throw e;
}
}
void methodA() {
try {
methodB();
} catch (SomeException e) {
//this block will run if methodB throws SomeException
}
}
但是如果你需要它,你可能根本不应该在methodB
中捕获异常,只是让它自动传播到methodA
:
void methodB() throws SomeException {
//Something that can throw SomeException: don't catch it
}
void methodA() {
try {
methodB();
} catch (SomeException e) {
//this block will run if methodB throws SomeException
}
}
实际上,这通常是它的工作方式,前提是functionB
本身不会捕获异常。 抛出异常时,会调用堆栈,直到找到匹配的catch
块。
不确定这是不是你想要的
void functionB() throws MyException {
try{
.....
}Catch(MyException e){
//do something here;
throw e;
}
}
void functionA() {
try {
functionB();
} catch (MYException e) {
//do something else to A here
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.