【问题标题】:Spring Data MongoTemplate exceptions during save保存期间的 Spring Data MongoTemplate 异常
【发布时间】:2016-03-13 21:12:45
【问题描述】:

我有以下代码使用 Spring 数据从我的 Java 应用程序执行保存到 Mongo。 如何处理此保存期间可能发生的异常?我的这个 DAO 方法是从 ServiceImpl 类中调用的。

public void saveDraftNote(Note draftNote) {
    try {
        mongoTemplate.save(draftNote);
    } catch (Exception e) {
        // TODO Error handling
    }
}

我应该捕获异常吗?或者捕获特定的异常? 如何将其传递给我的 ServiceImpl?我可以将 DAO 异常包装到自定义 ServiceException 中以在我的 ServiceImpl 中处理吗?

谢谢 拉姆

【问题讨论】:

    标签: java spring mongodb exception


    【解决方案1】:

    我有一个类似的问题,最后我深入研究了 MongoTemplate 代码。最重要的是,这些方法可以抛出 RunTimeException 的各种子类。据我所见,试图确定哪些是没有目的的。我的首选模式是捕获异常、记录异常并抛出 RuntimeException 的通用子类。

    【讨论】:

      【解决方案2】:

      这里不需要处理异常。如果你关心你的记录保存成功还是不使用WriteResult

      你的情况

      public void saveDraftNote(Note draftNote) {
      
             WriteResult result = mongoTemplate.save(draftNote);
      
      }
      

      将结果返回到您的业务层,您可以使用它轻松验证

      if (reult.getN() != 1)
                  //throw your exception...
      

      【讨论】:

      • 不确定我是否同意,但在我提出答案之前我需要做更多的挖掘工作。将鼠标悬停在 save() 方法上,您将看到:“方法 'save()' 无限递归,只能通过抛出异常结束”。我想找到的是我们可能会遇到什么样的异常。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 2015-09-26
      相关资源
      最近更新 更多