请问各位我在用Access进行数据据操作时,如添加一条新记录,在出现主关键字重复定义时,系统则会弹出一异常,我想用TRY...except捕获这一异常,然后用自已的提示。即判断当这一异常为主关键字重复定义时则提示。请问该如何进行判断,是通过异常ID吗?

解决方案 »

  1.   

    在你运行系统时,会出现错误提示,提示中间就说出了你违犯了哪个异常类,然后把这个异常类放在except 中就行了.
      

  2.   

    try
          if (scDic.Connected=false) then
          scDic.Connected := true;
        except
          on Err:Exception do
            begin
              gShowMessage(26,Err.Message,26);
              exit;
            end;
        end;
      

  3.   

    Try
      ……被保护的语句
    Except
      On E:Exception do
        begin
          Showmessage(E.Message);//异常信息
          ///继续处理其他事情
        end; 
    End;
      

  4.   

    To:jian23cn(黑翼天使)
      用 Showmessage(E.Message)是可以用自定义的消息框来显示系统的错误信息,但E.Message显示的是比较专业的信息。例:学号为主键字:当重复定义时则系统提示:主关键字重复定义之类的信息,但对用户来说是没意义的。我要做的是如果是属于主关键字重复定义则提示,该学号已存在的信息.
    To: liubinhua(咖啡半杯) gShowMessage(26,Err.Message,26)这是什么意思?
      

  5.   

    Try
      ……被保护的语句
    Except
      On E:Exception do
        begin
          if Pos('主关键字重复',E.Message) > 0 then
          Showmessage('主关键字重复');//异常信息
          ///继续处理其他事情
        end; 
    End;
      

  6.   

    再来代码:
    try
     ...
    except
      on E: EZeroDivision do
      begin
        ShowMessage('被零除,ft')
      end
      else on E: EOutOfIndex do
      begin
        ShowMessage('Out of index,ft')
      end
      else begin
        ShowMessage('什么错误?');
      end;
    end;
      

  7.   

    To  
      zhengji(看雨飞):
      我就是想取得错误类型:如你上面所写:EZeroDivision、EOutOfIndex之类的。但对数据库存操作时不知如何获得错误码类型
      

  8.   

    在delphi里面调试的时候会弹出出错框,仔细看里面的exception类名,然后填到程序里面.
      

  9.   

    EOleException类是数据库处理比如SQL语句执行中产生的通用异常类,EOleException的错误信息直接由数据服务器返回。也就是说,delphi只能判断出返回的是EOleException异常类,往下具体就不做判断了。 所以,数据库服务器返回不同的错误是不能同过异常的类型来判断的。只能向soundbug(兼职乞丐) 所说的那样来处理,捕捉异常信息关键字。