数据库异常(SQLException)的处理

shi_yingbo 2003-03-18 07:29:35
大家在处理SQLException的时候都是怎么做的?有没有一种固定的模式套用?我现在是先用try{}catch{}捕获SQLException异常,写日志以后抛向外层,这样的话,客户端的调用很麻烦。将SQLException异常转译为RuntimeException或Error可以吗?毕竟SQLException主要是在网络或数据库服务器等出问题才发生的,程序本身不能处理SQLException。有什么其他好的方法吗?
谢谢!
...全文
3120 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shi_yingbo 2003-03-31
  • 打赏
  • 举报
回复
我统计了两个开源的项目(jive、compiere)。他们80%的情况是,写日志后便将该异常忽略了。类似 flyycyu(fly)做法。
shi_yingbo 2003-03-21
  • 打赏
  • 举报
回复
zxhong(红透半边天)
你说的一些东东究竟是什么东东?
zxhong 2003-03-21
  • 打赏
  • 举报
回复
调试的时候可以抛出异常
但正式用的时候会用一些东东替代异常
qxjavajava 2003-03-21
  • 打赏
  • 举报
回复
对于你的第二个问题

我的做法是 2 抛出子定义的异常 以及信息
shi_yingbo 2003-03-21
  • 打赏
  • 举报
回复
补充一点
以上两位说的都有道理,但我更支持 sandyen(杉叶) 的方法。
shi_yingbo 2003-03-21
  • 打赏
  • 举报
回复

我的第二个问题是,大家在捕获SQLException后是
1、直接将SQLException抛向外层
2、抛出自定义的异常
3、抛出RuntimeException异常
4、或者其他处理方法
sandyen 2003-03-21
  • 打赏
  • 举报
回复
再大型项目中,日志只是非常必要的。最后你的东西是需要给客户的。你总不能让客户去看oracle的日志吧。一般的像这种数据库的异常要建立错误页面的,当有错误异常时候你可以条转到错误页面
takecare 2003-03-21
  • 打赏
  • 举报
回复
处理SQLException的目的最主要的是使数据库数据完整。当然最好不要让最终用户看到这种报错,其实你自己写日志全然没有必要,你的日志能跟Database的日志比吗?如果你要看日志数据本身都记录着呢。
shi_yingbo 2003-03-21
  • 打赏
  • 举报
回复
大家对这样的问题不感新兴趣吗?
puppy_lu 2003-03-21
  • 打赏
  • 举报
回复
楼上的用一句话说就是把exception打到log文件里面,然后装做什么都没发生过
flyycyu 2003-03-21
  • 打赏
  • 举报
回复
我的做法:
Connection conn = PoolManager.getInstance().getConnection();
Statement ss=null;
try
{
conn.setAutoCommit(true);
ss = conn.createStatement();
ss.executeUpdate(DBSTAION.DELETE());
}
catch(SQLException e)
{
Debug.log(e);
}
finally
{
Utils.CloseSs(ss);
PoolManager.getInstance().freeConnection(conn);
}
puppy_lu 2003-03-21
  • 打赏
  • 举报
回复
其实以上提及的几种处理都是有的,具体要看你业务处理要求
如果Exception导致系统无法继续运行,可以扔出抛出RuntimeException异常
如果你只是想在画面上显示一些提示信息,可以直接将SQLException抛向外层或者抛出自定义的异常
你也可以根据判断异常id来进行相关的业务处理,比如说插入数据操作一意性制约异常,可以继续作更新操作
bunny198212 2003-03-21
  • 打赏
  • 举报
回复
不用转换成RuntimeException或error.一般SQLException是数据库跑出的异常,以前做法是将SQLException转换成自定义异常,例如:MyException等,在客户读取异常信息,不过要看错误处理机制是怎样的。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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