java对于某些异常,ErrorCode和SQLState的组合可以被认为是唯一的ID吗?
一般来说,考虑错误代码&;SQLState组合是特定异常的唯一ID,基于代码逻辑是安全的吗
更具体地说,DataDirect是否遵循这样的原则
还有一个我需要的确切案例, 我的代码正在生成以下异常:
[SQLServer JDBC Driver]Changing the default holdability is not supported...
以及以下各项:
System.out.println(">e.getErrorCode: " + e.getErrorCode());
System.out.println(">e.getSQLState: " + e.getSQLState());
他正在复述:
>e.getErrorCode: 0
>e.getSQLStat: hy000
那么,如果我检查0 && hy00
,那么我只过滤我前面提到的异常,这是否安全呢
如果我能得到一份官方DataDirect文档的参考资料,说明这些事实,那将非常有帮助
# 1 楼答案
不,你不能假设这一点。SQLState
HY000
只是一个通用的CLI SQL错误(由SQL CLI标准定义),错误代码0表示“未设置特定的错误代码”。通常,当没有更具体的内容可用时,或者如果开发人员没有麻烦指定任何其他内容,驱动程序使用HY000
作为SQLState即使在一般情况下,单个SQLState也可以覆盖范围非常广泛的错误,并且单个错误代码(0除外)是用于一个错误还是用于一组错误可能取决于数据库和错误的上下文