我有一个反应式 springboot 应用程序,其中一个方面
@Before("approveRejectPointcut()")
public void logAfterReturning(JoinPoint joinPoint) {
Status newStatus = AspectUtils.returnFirstParameterOfTypeOrFail(allParameters, Status.class, "approveRejectPointcut");
String comments = AspectUtils.returnFirstParameterOfTypeOrFail(allParameters, String.class, "approveRejectPointcut");
Mono<Object> someObjectOrException = someService.updateApplicationStatus(appId, newStatus, comments);
someObjectOrException
.subscribe(i->log.info(i),
error->{
log.info("we have some ex: "+error.getMessage());
throw new RuntimeException("PLEASE LORD: "+error.getMessage());
});
}
这里发生了什么,来自某些服务的 updateApplicationStatus() 在某个时候抛出了一个业务异常(这很好),在这方面我打印了异常消息,这也很好。但是,当我尝试抛出业务异常(其基础为 RuntimeException)时......我可以在控制台中看到这个异常,但是......它没有到达客户端。我怀疑它被扔到了另一个线程上。有什么线索吗?