gpt4 book ai didi

java - try-catch around 回调

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:08 26 4
gpt4 key购买 nike

public class Test {

public static void main(String[] args) {

try {
doSomething(new TestCallback() {
@Override
public void doCallback() {
throw new NullPointerException();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}

public static void doSomething(TestCallback callback){
callback.doCallback();
}

interface TestCallback {
public void doCallback();
}
}

RESULT:
java.lang.NullPointerException
at managers.concurrency.Test$1.doCallback(Test.java:11)
at managers.concurrency.Test.doSomething(Test.java:20)
at managers.concurrency.Test.main(Test.java:8)

在上面的代码中,我们会得到NullPointerException,因为回调代码是在堆栈的不同部分执行的。有没有办法在本地捕获此类异常?

最佳答案

您已经捕获了异常。尝试如下 -

    try {
doSomething(new TestCallback() {
@Override
public void doCallback() {
throw new NullPointerException();
}
});
} catch (Exception e) {
System.out.println("Exception caught !!!");
}

输出:

Exception caught !!!

关于java - try-catch around 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13149076/

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