java - 为什么 SQLException 不扩展 IOException?

标签 java exception jdbc

作为客户端,当我的程序的输入/输出发生“不良”情况时,应该抛出 I/O 异常。现在,当我连接到服务器时,我的程序作为该服务器的客户端具有输入输出关系。因此,当通信中的某些内容不起作用(某些“坏”)时,产生的异常应该是 IOException,即 SQLException 应该扩展 IOException。

为什么情况并非如此?

最佳答案

因为SQLException并不总是与IO相关。

例如,如果您编写了错误的 SQL 命令,则会出现 SQLException

以下是与 IO 无关的可能 SQLException 的非详尽列表:

  • 错误的 SQL 语法
  • 属性编号错误
  • 属性类型错误
  • 违反约束
  • 权限问题
  • 主键重复
  • 不存在的表或列名称

来自javadoc :

An exception that provides information on a database access error or other errors.

关于java - 为什么 SQLException 不扩展 IOException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38224141/

相关文章:

java - 创建文件中定义的名称为 'userController' 的 bean 时出错

java - 耦合/内聚

java - UncaughtExceptionHandler 未调用

java.lang.IllegalArgumentException : the bind value at index 1 is null

java - 从数据库中获取长值

java - 如何获取 HttpClient 请求的响应代码

枚举构造函数中的 Java 字节类型

java - 逃避的正确方法是什么?使用 Oracle 12c MATCH_RECOGNIZE 时 JDBC PreparedStatement 中的字符?

ruby-on-rails - capybara 犯了两次错误,该如何拯救?

Python 尝试/捕获 : simply go to next statement when Exception