为什么SQLException没有扩展IOException?

Gre*_*hor 0 java exception jdbc

作为客户端,当程序的输入/输出发生"坏"时,应该抛出I/O异常.现在当我连接到服务器时,我的程序有一个输入输出关系作为服务器的客户端.因此,当通信上的某些东西不起作用(某些"坏")时,产生的异常应该是IOException,即SQLException应该扩展IOException.

为什么不是这样?

Dav*_*INO 6

因为a SQLException并不总是与IO相关.

例如,如果您编写错误的SQL命令,您将拥有一个SQLException.

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

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

来自javadoc:

提供有关数据库访问错误或其他错误的信息的异常.