我们希望有一个系统,PostgreSQL会在执行交易时抛出一个自定义异常,详细说明错误情况,例如资金不足,已售出的商品等。
临时解决方案用于检索com.postgresql.util.PSQLException
中包含的PersistenceException
。但是,这会强制程序包对PostgreSQL库具有构建和测试依赖性,从而失去一些模块性。
我们是否可以通过更优雅或更标准的方式返回并解析PostgreSQL中的异常?
答案 0 :(得分:1)
在您自己的异常类中包装PostgreSQL特定的异常。在创建自己的异常类时,将PSQLException作为原因传递,以便它显示在完整堆栈跟踪和Exception.getCause()
调用中。然后该包只会对PostGreSQL产生运行时依赖性。