什么时候执行executeUpdate,返回值为负数而不抛异常???

aoyusky 2008-10-16 03:15:39
比如:
if(executeUpdate(strSQL)<0){
return -1;
}
什么时候能走到return -1;
...全文
1423 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yellowasia 2010-06-26
  • 打赏
  • 举报
回复
我这正郁闷 没抛异常 返回-1
zengyong19870315 2008-11-13
  • 打赏
  • 举报
回复
对 ,它返回的是一个异常,怎么处理呢?我不能忽略吧!
aoyusky 2008-10-16
  • 打赏
  • 举报
回复
再比如java里
PreparedStatement ps = conn.prepareStatement(sql);
count = ps.executeUpdate();
sql是 INSERT语句

怎么样可以得到count 是-1的结果?
是executeUpdate方法直接返回的结果
(因为executeUpdate说明中说到返回值是返回的执行行数,出错时返回负数,
什么样的错能返回负数?INSERT一个不同数据类型的,或SQL写得不对,直接抛异常了。)


又是违规昵称 2008-10-16
  • 打赏
  • 举报
回复
你把刚才的那段代码包装在一个function里面,
如果抛了异常,它就会返回-1

只要function里的exceptions不raise,
调用它的代码比如java是catch不到的

你好像是在用exception的方式处理逻辑问题,
我不支持你这样做
aoyusky 2008-10-16
  • 打赏
  • 举报
回复
谢谢lpc19598188
上面只是个例子,其实只是想知道
返回值为负数而不抛异常,怎样才能做到。

rtn=executeUpdate(strSQL)
一般出错后肯定抛异常就被catch掉了,rtn好像永远不会为负数。
又是违规昵称 2008-10-16
  • 打赏
  • 举报
回复
你把可能抛出异常的语句再包装一层,
出异常后会继续往下执行:

Declear
Begin

begin
可能产生异常的语句;
Exception
WHEN OTHERS THEN
标志变量 := executeUpdate(strSQL);
end;

if(标志变量 <0){
return -1;
}


Exception
WHEN OTHERS THEN
..............;
End;

当然上面是伪代码, 语法有问题,但就是这个意思吧

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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