Spring Boot + 调度程序 + Spring Data JPA + Oracle 中的异常处理

Posted

技术标签:

【中文标题】Spring Boot + 调度程序 + Spring Data JPA + Oracle 中的异常处理【英文标题】:Exception Handling in Spring Boot + Schedulers + Spring Data JPA + Oracle 【发布时间】:2022-01-12 12:58:10 【问题描述】:

我正在尝试找出所有异常可以被处理/捕获和处理的其他方式,例如将数据库插入表中?

主要是,没有公开控制器或 API。相反,只有调度程序通过 JPA 查询(即非本机查询)从 Oracle DB 表中读取数据,并使用悲观写入锁定和查询提示作为超时指定。之后,处理后的数据会以字节数组的形式发送到外部系统。

我遇到了一些异常,例如 JPASystemException、LocktimeoutException 等,但不知何故,我无法捕捉到它们。

有什么想法吗?

【问题讨论】:

【参考方案1】:

您可以使用 AOP 并为所有访问数据库并可能引发异常的方法定义切入点和建议。 Spring 提供了诸如 AfterThrowing 和 Around 之类的建议,它们可以保存您的错误处理逻辑。

【讨论】:

任何参考或sn-ps好吗? 网上的例子太多了。例如:link 看起来不错。谢谢但我正在考虑以简单的标准异常处理类型实现并将其存储在数据库表中以用于审计/记录目的。 AOP 将彻底改变我的设计。

以上是关于Spring Boot + 调度程序 + Spring Data JPA + Oracle 中的异常处理的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 批处理调度程序运行一次

Spring Boot + 调度程序 + Spring Data JPA + Oracle 中的异常处理

在 Spring Boot 中使用多个调度程序 Servlet/Web 上下文

Spring Boot

如何使用 Spring Boot 和 Flyway 为 Quartz 调度程序设置数据库模式?

Spring Boot总结