怎样判断捕捉到的是什么Exception

flowerjack 2012-07-26 07:18:54
怎样判断捕捉到的exception是什么exception呢?
是唯反主键唯一性,还是update的元组不存在呢?
...全文
300 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
flowerjack 2012-07-27
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20120628/19/5dafab2c-216a-499a-b03d-c848fdb13a79.html
哪位顺便来这里接个分,没人回复,结不了贴
MiceRice 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
这样的话如果要换其他数据库,甚至换同类数据库的不同版本都可能带来程序的不可移植
[/Quote]

同类数据库不同版本到好说,但不同数据库绝对完蛋。。。

但也没办法,Java并没有针对SQL定义出很多种不同类型的Exception,通用的只有这几种:
BatchUpdateException, RowSetWarning, SerialException, SQLClientInfoException, SQLNonTransientException, SQLRecoverableException, SQLTransientException, SQLWarning, SyncFactoryException, SyncProviderException, SQLDataException, SQLFeatureNotSupportedException, SQLIntegrityConstraintViolationException, SQLInvalidAuthorizationSpecException, SQLNonTransientConnectionException, SQLSyntaxErrorException, SQLTimeoutException, SQLTransactionRollbackException, SQLTransientConnectionException
龙四 2012-07-26
  • 打赏
  • 举报
回复
这样的话如果要换其他数据库,甚至换同类数据库的不同版本都可能带来程序的不可移植

[Quote=引用 5 楼 的回复:]

如ldh911所言,只能判断exception中的message字符串了
[/Quote]
MiceRice 2012-07-26
  • 打赏
  • 举报
回复
ex.getMessage().indexOf("ORA-00056");
龙四 2012-07-26
  • 打赏
  • 举报
回复
如ldh911所言,只能判断exception中的message字符串了
flowerjack 2012-07-26
  • 打赏
  • 举报
回复
新人,可以举个例子吗[Quote=引用 3 楼 的回复:]

对了,如果数据库比较规范,比如Oracle,可以依赖于消息正文中的Oracle标准错误代码,比如:

ORA-00056: DDL lock on object 'string.string' is already held in an incompatible mode
[/Quote]
MiceRice 2012-07-26
  • 打赏
  • 举报
回复
对了,如果数据库比较规范,比如Oracle,可以依赖于消息正文中的Oracle标准错误代码,比如:

ORA-00056: DDL lock on object 'string.string' is already held in an incompatible mode
MiceRice 2012-07-26
  • 打赏
  • 举报
回复
所返回异常的Message信息不同,基本上只能靠这个。。。
flowerjack 2012-07-26
  • 打赏
  • 举报
回复
目的:
判断是唯反主键唯一性,还是update的元组不存在呢?
返回不同的值

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧