繁体   English   中英

如何在Spring Boot异步功能中处理未捕获的异常?

[英]How to handle uncaught exceptions in Spring boot async function?

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

@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); 
  }

上面的代码是一个片段。 我知道它将抛出空指针异常,并且我已经故意以这种方式进行设置。

路径为[]的上下文中Servlet [dispatcherServlet]的错误-Servlet.service()引发异常[请求处理失败; 嵌套异常是java.lang.NullPointerException],其根本原因是java.lang.NullPointerException:null

当该功能标记为@Async时,该行什么也没有显示,即

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

我了解这可能是因为异常未传播到主线程。 如何处理异步功能中的异常?

将整个代码放在try and catch(ex exException)中并记录该异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM