一般来说,将 ErrorCode 和 SQLState 组合视为特定异常的唯一 ID,作为代码逻辑的基础是否安全?
更具体地说,DataDirect 是否遵循这样的事情?
另外对于我需要的确切案例, 我的代码生成以下异常:
[SQLServer JDBC 驱动程序]不支持更改默认可保持性...
以及以下内容:
System.out.println(">e.getErrorCode: " + e.getErrorCode());
System.out.println(">e.getSQLState: " + e.getSQLState());
正在回归:
>e.getErrorCode: 0
>e.getSQLStat: hy000
那么可以安全地假设,如果我检查 0 && hy00
那么我只过滤我之前提到的异常?
如果我可以获得说明此类事实的官方 DataDirect 文档的引用,将会非常有帮助。
最佳答案
不,你不能假设这一点。 SQLState HY000
只是一个通用 CLI SQL 错误(由 SQL CLI 标准定义),错误代码 0 表示“未设置特定错误代码”。通常,当没有更具体的可用信息或者开发人员没有指定任何其他内容时,驱动程序会使用 HY000 作为 SQLState。
即使一般情况下,单个 SQLState 也可以涵盖非常广泛的错误,并且单个错误代码(0 除外)是否用于一个错误或一组错误可能取决于数据库和错误的上下文。
关于java - ErrorCode 和 SQLState 组合是否可以被视为某些异常的唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18363693/