Java-try&;调用方法中的捕获

Java-try&;调用方法中的捕获,java,Java,我有一个关于Java的基本问题: 我有两种方法:function和functionBfunctionA调用functionB,并且functionB引发异常。对functionB的调用在function的try范围内 现在我还希望function将进入它的捕获范围 有什么方法可以做到这一点吗?如果在methodB中抛出异常并捕获它,将其传播到methodA的一种方法是重新播放它: void methodB() throws SomeException { try { //

我有一个关于Java的基本问题:

我有两种方法:
function
functionB
functionA
调用
functionB
,并且
functionB
引发异常。对
functionB
的调用在
function
的try范围内

现在我还希望
function
将进入它的捕获范围


有什么方法可以做到这一点吗?

如果在
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
}
}

你的问题不清楚。什么是“我也希望Function将进入它的捕获范围”?Function调用functionB。现在,函数B出现了一个例外。所以函数B进入它的捕获范围。我还希望functionA在从functionB调用返回时进入它的catch范围。对不起,这没有帮助-这既不是很好的英语,也没有任何技术意义。请在代码中显示一个示例,说明您尝试了什么,以及您希望发生什么。在B的catch块中重新显示该示例,并为函数B声明
throws
子句,然后它将转到A的catch块。但不清楚你到底想要实现什么