如何做一个通用的异常处理:具体说就是,
数据库方面的错误和程序中其他的错误,统一调用一个界面显示给客户。

解决方案 »

  1.   

    使用錯誤捕捉過程:
    type
      TGlobalExHandler = class
      public
        ViolateKeyMsg:String;
        constructor Create;
        procedure HandlerProc(Sender: TObject; EInstance: Exception);
                     //容錯頭指針
      end;
       
      TMainForm = class(TForm)
    var
      MainForm: TMainForm;
      GlobalExHandler: TGlobalExHandler; //容錯處理句柄procedure TMainForm.FormCreate(Sender: TObject);
    begin    // 容錯處理
      GlobalExHandler:=TGlobalExHandler.Create;
      Application.OnException := GlobalExHandler.HandlerProc;
    end;procedure TGlobalExHandler.HandlerProc(Sender: TObject; EInstance: Exception);
    begin                          //錯誤顯示
      if (EInstance is EDBEngineError) then   
    begin
       .....
      end
      else
        .....
    end;