社区
Java SE
帖子详情
数据库异常(SQLException)的处理
shi_yingbo
2003-03-18 07:29:35
大家在处理SQLException的时候都是怎么做的?有没有一种固定的模式套用?我现在是先用try{}catch{}捕获SQLException异常,写日志以后抛向外层,这样的话,客户端的调用很麻烦。将SQLException异常转译为RuntimeException或Error可以吗?毕竟SQLException主要是在网络或数据库服务器等出问题才发生的,程序本身不能处理SQLException。有什么其他好的方法吗?
谢谢!
...全文
3120
13
打赏
收藏
数据库异常(SQLException)的处理
大家在处理SQLException的时候都是怎么做的?有没有一种固定的模式套用?我现在是先用try{}catch{}捕获SQLException异常,写日志以后抛向外层,这样的话,客户端的调用很麻烦。将SQLException异常转译为RuntimeException或Error可以吗?毕竟SQLException主要是在网络或数据库服务器等出问题才发生的,程序本身不能处理SQLException。有什么其他好的方法吗? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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等,在客户读取异常信息,不过要看错误处理机制是怎样的。
System.Data.SqlClient.
SqlException
: 无法打开登录所请求的
数据库
登录失败。
问题是这样的…我在VS2008直接运行打开网页,可以连接
数据库
…但通过输入地址,也可以打开网页,但涉及
数据库
就出问题… 无法打开登录所请求的
数据库
“TakeClass”。登录失败。 用户 ‘2D2727E2578F446\ASPNET’ 登录失败。 说明: 执行当前 Web 请求期间,出现未
处理
的
异常
。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常
详细信息: System.Data.SqlClient.
SqlException
: 无法打开登录所请求的
数据库
“TakeClass”。登录失败。 用户 ‘2D2727E2578F446\ASPNET’ 登录失败。
springboot整合mybatis连接mysql
数据库
出现
SQLException
异常
springboot整合mybatis连接mysql
数据库
出现
SQLException
异常
数据库
异常
处理
在Java中的实现
通过在项目的依赖配置中添加适当的JDBC库,我们就可以在代码中使用它们。一旦建立了与
数据库
的连接,我们就可以执行各种
数据库
操作,比如执行SQL查询、插入数据、更新数据等。在Java中,我们可以通过一些技术和方法来捕捉和
处理
数据库
异常
,以保护我们的应用程序免受数据丢失、连接问题和其他潜在的错误。在建立连接的过程中,可能会发生许多
异常
,比如无法找到
数据库
、无法连接到
数据库
服务器等。在上述代码中,我们在DatabaseManager类中添加了一个closeConnection()方法,用于关闭与
数据库
的连接。
Java连接
数据库
时常见的
SQLException
异常
原因
以下是一些常见的导致
SQLException
异常
的原因,并提供相应的示例代码进行说明。本文讨论了一些导致
SQLException
异常
的常见原因,包括无效的
数据库
连接URL、错误的
数据库
凭据和
数据库
连接超时。在上面的示例中,URL “jdbc:mysql://localhost:3306/mydatabase” 是无效的,可能是因为
数据库
名称错误或端口号不正确。在上面的示例中,将连接超时时间设置为1秒钟。在上面的示例中,提供的用户名和密码与
数据库
凭据不匹配,因此会抛出
SQLException
异常
。
mysql
数据库
异常
处理
_MySQL
数据库
的
异常
处理
教程
MySQL
数据库
操作过程中难免会出现会出现一些
异常
情况,遇到这种情况是,下文中介绍的内容将会帮助到大家。对于MySQL的
异常
处理
:标准格式以下为引用的内容:DECLARE handler_type HANDLER FOR condition_value[,...] statementhandler_type:CONTINUE| EXIT| UNDO --暂时不支持condition_value:S...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章