免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4109 | 回复: 16
打印 上一主题 下一主题

请问.Jsp连接数据库sqlserver中的插入异常如何解决. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-20 13:23 |只看该作者 |倒序浏览
假设我的.一个表information 中的id为主键了.

如果我添了两个相同的id 就会报错.
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]违反了 PRIMARY KEY 约束 'PK_information。不能在对象 'information' 中插入重复键。


请问应该如何处理这个异常呢?

论坛徽章:
0
2 [报告]
发表于 2006-03-20 13:45 |只看该作者
这由你们的业务需求而定

论坛徽章:
0
3 [报告]
发表于 2006-03-20 13:50 |只看该作者
原帖由 tinywind 于 2006-3-20 13:45 发表
这由你们的业务需求而定


没听明白.能否细致的说一下?

try
        {
                int n=ps.executeUpdate();
        }
        catch(SQLException e)
        {
                out.println(e.toString());
        }

这样捕捉异常怎么不好用呢?

论坛徽章:
0
4 [报告]
发表于 2006-03-20 14:06 |只看该作者
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 11 in the jsp file: /add_term_plan_post.jsp
Generated servlet error:
n cannot be resolved

论坛徽章:
0
5 [报告]
发表于 2006-03-20 14:10 |只看该作者
应该怎样处理完全由业务需求决定,你可以直接让出错信息给用户看,也可以忽略这个错误,或者这个异常完全是你们期待的结果。这些都取决于你的需求,我不知道你要作的是什么系统,我怎么知道要如何处理。
从你贴出的代码看,你是打印出错信息给用户看,这是否是你们需要的,你是希望怎样处理。

论坛徽章:
0
6 [报告]
发表于 2006-03-20 14:12 |只看该作者
原帖由 tinywind 于 2006-3-20 14:10 发表
应该怎样处理完全由业务需求决定,你可以直接让出错信息给用户看,也可以忽略这个错误,或者这个异常完全是你们期待的结果。这些都取决于你的需求,我不知道你要作的是什么系统,我怎么知道要如何处理。
从你贴出 ...


我希望如果用户输入了一个重复的主键.那么就提示已经存在了.而不是出现这么一个报错的页面.

论坛徽章:
0
7 [报告]
发表于 2006-03-20 14:14 |只看该作者
原帖由 tinywind 于 2006-3-20 14:10 发表
应该怎样处理完全由业务需求决定,你可以直接让出错信息给用户看,也可以忽略这个错误,或者这个异常完全是你们期待的结果。这些都取决于你的需求,我不知道你要作的是什么系统,我怎么知道要如何处理。
从你贴出 ...


如何忽略这个错误呢?

论坛徽章:
0
8 [报告]
发表于 2006-03-20 14:18 |只看该作者
那你在catch段中判断异常的类型,如果是主键重复错误就提示用户
忽略就更简单了,catch中什么都不做就可以了

论坛徽章:
0
9 [报告]
发表于 2006-03-20 14:21 |只看该作者
原帖由 tinywind 于 2006-3-20 14:18 发表
那你在catch段中判断异常的类型,如果是主键重复错误就提示用户
忽略就更简单了,catch中什么都不做就可以了



我是新手啊. 怎么判断异常的类型啊?

论坛徽章:
0
10 [报告]
发表于 2006-03-20 14:27 |只看该作者
说实话,我也不知道,因为我没用过sql server

不外乎两种方式,一种是以不同的exception区分不同的类型,你可以用 instanceof 来判断,或者你直接catch该异常
另一种是在exception中附加error id之类的字段,根据它来区分
具体你要查你所用driver的文档

[ 本帖最后由 tinywind 于 2006-3-20 14:29 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP