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

Spring JdbcTemplate如何在异常时记录参数?

王旺
2023-03-14
public int addStore(Store store) {
    return jdbcTemplate.update(addStoreSql, store.getId(), store.getName());        
}
public int addStore(Store store) {
    try{
        return jdbcTemplate.update(addStoreSql, store.getId(), store.getName());        
    } catch (DataAccessException ex) {
        logger.error("exception on deleting store - " + store.toString(), ex);
        throw ex;
    }
}

我有多个方法做基本相同的事情,接收一个对象,将字段传递给查询并返回结果。

共有1个答案

况野
2023-03-14

绝对不要使用此模式:

    logger.error("exception on deleting store - " + store.toString(), ex);
    throw ex;

因为如果经常导致重复的日志条目。应该有一些全局异常陷阱,它的责任是记录错误。

编辑

 类似资料:
  • 我找不到一种一致的方法来记录我的.NET Core微服务中的异常。信息性消息日志记录准则很简单(使用Microsoft.Extension.logging): 第二个变体的好处是结构化信息:通过使用巧妙的日志事件路由器(如带有RenderedCompactJsonFormatter的Serilog),路径被写为日志事件的单独属性。 随着错误日志记录,情况变得更糟。要求很明显: 错误作为异常实现。

  • 问题内容: 约书亚·布洛赫(Joshua Bloch)在他的《有效Java》中写道: “使用Javadoc @throws标记来记录方法可以抛出的每个未经检查的异常,但是请不要使用throws关键字在方法声明中包括未经检查的异常。” 听起来确实很合理,但是如何找出我的方法会抛出哪些未经检查的异常? 让我们考虑以下课程: 现在,我记录了HorribleException,但是很明显,foo方法也可以

  • 在我的项目中,我将Hibernate与Spring和JPA结合使用。代码在服务层使用注释驱动的事务(使用@Transactional注释支持事务)。事务管理器是org.springframework.orm.hibernate4.HibernateTransactionManager。当任何@Transactional注释方法中发生异常时,当前事务将自动回滚。 我想知道如果我想在事务回滚时记录异常

  • 我的项目依赖于scala日志库,我正在尝试升级我的项目以使用dotty。为此,我从https://github.com/lampepfl/dotty-example-project克隆了示例dotty项目并更新了它,包括日志库。请在下面找到项目的目录结构:- 项目/build.properties:- 项目/plugins.sbt 建筑sbt公司 src/main/scala/main。斯卡拉 上

  • java版本java(TM)SE运行时环境(构建1.7.0_79-B15)java HotSpot(TM)64位服务器VM(构建24.79-B02,混合模式) 我使用的ARG

  • 我正在尝试使用redis缓存JOOQ记录结果。但同样是抛出以下错误: 有什么建议可以解决这个问题吗?