比如:
if(executeUpdate(strSQL)<0){
    return -1;
}
什么时候能走到return -1;

解决方案 »

  1.   

    你把可能抛出异常的语句再包装一层,
    出异常后会继续往下执行:Declear
    Begin
     
          begin
               可能产生异常的语句;
          Exception
               WHEN OTHERS THEN
                 标志变量 := executeUpdate(strSQL);
          end;
          
          if(标志变量  <0){
            return -1;
          } 

       
    Exception
          WHEN OTHERS THEN
                  ..............;
    End;当然上面是伪代码, 语法有问题,但就是这个意思吧
      

  2.   

    谢谢lpc19598188 
    上面只是个例子,其实只是想知道
    返回值为负数而不抛异常,怎样才能做到。rtn=executeUpdate(strSQL)
    一般出错后肯定抛异常就被catch掉了,rtn好像永远不会为负数。
      

  3.   

    你把刚才的那段代码包装在一个function里面,
    如果抛了异常,它就会返回-1只要function里的exceptions不raise,
    调用它的代码比如java是catch不到的你好像是在用exception的方式处理逻辑问题,
    我不支持你这样做
      

  4.   

    再比如java里
    PreparedStatement ps = conn.prepareStatement(sql);
    count = ps.executeUpdate();
    sql是 INSERT语句怎么样可以得到count 是-1的结果?
    是executeUpdate方法直接返回的结果
    (因为executeUpdate说明中说到返回值是返回的执行行数,出错时返回负数,
    什么样的错能返回负数?INSERT一个不同数据类型的,或SQL写得不对,直接抛异常了。)