非常郁闷的问题!大家看看!

arfeng75 2005-12-27 09:56:36
if(dispuser.chkLogin()==true){
out.print("修改密码成功!");
}else{
out.print("用户名或密码有错!");
}

上面是修改密码调用的类。大多数的用户可以成功修改密码,
有少数的用户修改密码后出现"用户名或密码有错!"的提示,但是密码又修改成功了!
真是很郁闷啊!怎么可能会出现这种情况呢?逻辑上也过不去呀???

我用的是Oracle8数据库,Linux系统,JDK1.5。知道原因的朋友请告诉我。谢谢!
...全文
112 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
skycncomp 2005-12-27
  • 打赏
  • 举报
回复
是不是在多线程下用的?
想喝咖啡的貓 2005-12-27
  • 打赏
  • 举报
回复
查查这个chkLogin()
if(dispuser.chkLogin()==true){ 把"==true"删掉

李欣欣1981 2005-12-27
  • 打赏
  • 举报
回复
只是这一句的话,应该不会出什么问题,是不是chkLogin()里面有问题。
yingtju 2005-12-27
  • 打赏
  • 举报
回复
我觉得是这样的
try {
if(chkLogin()){
changePassword();
} else {
throw new Exception("error");
}

function1();

} catch (Exception e) {
System.out.println("pw error")
}

这时如果function1()抛出异常,既会改密码又会打印出错信息
jragon 2005-12-27
  • 打赏
  • 举报
回复
1.chkLogin从名字上看不具有修改密码的功能,应该是验证登陆用户是否有权修改密码。
2.因为在出错逻辑中没有抛出异常或做处理。
所以无论用户是否有权,都可以执行修改密码的逻辑。因为你没有在出错时终止程序的执行。

baidurenjwt 2005-12-27
  • 打赏
  • 举报
回复
楼上说的是啊

还是从特速用户身上找问题吧

不知道是不是返回类型有问题啊
infowain 2005-12-27
  • 打赏
  • 举报
回复
分析一下出错的用户和不出错的用户之间有什么不同之处,也许可以找到点线索
tom2005 2005-12-27
  • 打赏
  • 举报
回复
代码太少,看不出问题
rickyelf 2005-12-27
  • 打赏
  • 举报
回复
return 了吗?
好象你的程序只是信息不一样,其他的执行效果都一样,加个return试试
xiongbing528 2005-12-27
  • 打赏
  • 举报
回复
真的是很奇怪了。。==true不去掉也没关系。。
arfeng75 2005-12-27
  • 打赏
  • 举报
回复
不是。把=TURE去掉也是一样!
问题是80%的用户可以修改。有部分就返回错误信息。
真是没折了。。。。

81,092

社区成员

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

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