【发布时间】: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