当前位置: 首页 > 知识库问答 >
问题:

project reactor中的异常处理问题并重试失败的事务

弓俊晖
2023-03-14

我在测试错误处理部分的代码。看起来它不像预期的那样工作。我已经分解了代码片段如下所示。总体的补充是当有异常时重试5次。为了简单起见,我编写了一个方法来抛出NPE异常,并添加了一个错误处理程序。有人能解释什么是错误的。

public static void main(String[] args) {
    Mono.just( errorDemo() )
        .retry(5)
        .doOnError( e -> log.error( "Error {}", e.getStackTrace() ) )
        .doOnSuccess( e -> log.info( "done" ) );
}
public static Mono<Void> errorDemo() {
    return Mono.error( NullPointerException::new ); // throwing back 
exception to calling method
}

共有1个答案

邢洋
2023-03-14

你应该订阅你的单声道。如果你不订阅什么也不会发生。

您可以为示例添加.block()

 类似资料:
  • 问题内容: 我有一个关于异常处理的问题。考虑以下Java代码段。 我知道这是处理异常的推荐方法。但是我可以通过使用以下代码片段来实现相同的目的。 有人可以告诉我第二种方法的弊端吗? 问题答案: 第二种方法可读性较差。此外,即使“聪明”的窍门是使用instanceof关键字,Pokemon异常处理也永远不会走。无论如何,我不是在取笑或嘲笑您,但最好是编写供人类阅读和维护的代码,而不是计算机。

  • 我希望下面的代码在其中一个方法<code>callfuture1()</code>或<code>callfuture2()</code>抛出异常时返回自定义消息。我的理解是,如果任何一个未来失败,都将是失败的未来。 但是,当 引发异常时。 不执行。相反,我看到调用堆栈停止在 中的代码行,其中发生了异常并返回了标准内部错误。为什么会这样? ====更新==== 我从响应中看到,潜在的问题是异常被抛出

  • 我对Java硒有问题。我用它来自动化测试web页面,它的结构非常复杂--大量的元素是动态加载的,html页面中有大量不必要的元素。要使我的测试可靠是很难的。有时页面不能加载,或者我尝试点击还不存在的按钮(当然是类似的方法)。 于是,我用下面这样的方法编写了Util类: 我知道它看起来很糟糕,我还没有重构它,但是method通常在大多数情况下工作良好--在第二个或第三个循环中输入字段被填充。 首先,

  • 对于一个小型开发团队(6名开发人员),我设置了Gerrit和Jenkins,以允许代码审查和CI。两者之间的集成工作良好,Jenkins编译并测试了代码。 然而,我无法决定如何处理失败的失败测试。目前,如果测试失败,那么构建也被视为失败。如果功能更改导致测试失败,将如何处理?或者当测试得到改进并发现损坏的代码时?是否也会修复损坏的代码,并将测试更改和修复压缩到单个提交中?

  • 异常严重:Servlet。路径为[z2]的上下文中servlet[dispatcher]的service()引发异常[请求处理失败;嵌套异常为org.springframework.dao.DataIntegrityViolationException:not null属性引用null或瞬时值:com.spring.entity.Product.cd;嵌套异常为org.hibernate.Prop

  • 本文向大家介绍在SAP HANA系统中处理失败的事务,包括了在SAP HANA系统中处理失败的事务的使用技巧和注意事项,需要的朋友参考一下 在SAP HANA系统中,会话和事务管理器负责跟踪HANA数据库中所有已执行的事务。它包括正在运行的事务和已关闭的事务。当HANA系统中的事务因任何原因失败时,事务管理器会通知相应的引擎处理该错误。 会话管理器负责管理打开和关闭的会话,并授权在HANA数据库中