1

一般来说,考虑到 ErrorCode 和 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 && hy00then 我只过滤我之前提到的异常是否安全?

如果我可以参考说明此类事实的官方 DataDirect 文档,那将非常有帮助。

4

1 回答 1

1

不,你不能假设这一点。SQLStateHY000只是一个通用的 CLI SQL 错误(由 SQL CLI 标准定义),错误代码 0 表示“未设置特定错误代码”。通常HY000,当没有更具体的可用时,驱动程序用作 SQLState,或者如果开发人员没有打扰指定其他任何内容。

甚至一般来说,单个 SQLState 可以涵盖非常广泛的错误,并且单个错误代码(0 以外)是用于一个错误还是一组错误可能取决于数据库和错误的上下文。

于 2013-08-22T06:59:39.727 回答