gpt4 book ai didi

java - 如何处理 Spring boot 异步函数中未捕获的异常?

转载 作者:行者123 更新时间:2023-12-02 01:35:19 27 4
gpt4 key购买 nike

如果出现任何未捕获的异常,异步函数将停止,而不会在控制台上抛出任何错误行。如果该函数未标记为异步,则打印与其对应的日志。

@Async  
public CompletableFuture<?> AsyncManager() {
logger.info("Executing method asynchronously - " + Thread.currentThread().getName());

HashMap<String, String> map = new HashMap<>();
map.get("Hello").length();

return CompletableFuture.completedFuture(map);
}

上面的代码是一个片段。我知道它会抛出空指针异常,并且我故意这样设置。

ERROR -Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException: null

当函数被标记为@Async时,它在该行上什么也不显示,即

map.get("Hello").length();

我知道这可能是因为异常没有传播到主线程。如何处理异步函数中的异常?

最佳答案

将整个代码放在 try 和 catch(Exception ex) 中并记录异常。

关于java - 如何处理 Spring boot 异步函数中未捕获的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57523198/

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