【问题标题】:How to handle uncaught exceptions in Spring boot async function?如何处理 Spring Boot 异步函数中未捕获的异常?
【发布时间】:2019-08-16 10:42:03
【问题描述】:

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

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

上面的代码是一个sn-p。我知道它会抛出空指针异常,我特意这样设置。

ERROR -Servlet.service() for servlet [dispatcherServlet] 在上下文中 带路径[]抛出异常[请求处理失败;嵌套的 异常是 java.lang.NullPointerException] 的根本原因 java.lang.NullPointerException: null

当函数被标记为@Async 时,它在该行不显示任何内容,即

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

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

【问题讨论】:

    标签: java spring-boot asynchronous exception


    【解决方案1】:

    将整个代码放入 try and catch(Exception ex) 并记录异常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多