如何在程序中写报错:
比如说定义一个变量上限100,当超过上限时如何越过DELPHI的报错,跳到自己报错程序中。这样的处理程序如何写?

解决方案 »

  1.   

    if x>100 then raise(Exception.create('x不能大于100!'));
      

  2.   

    try
       i:=111;
       if i>100 then raise exception.create('超出了100');
     except
       on e:exception do
         messageDlg( e.Message,mtinformation,[mbOk],0);
    end;
      

  3.   

    procedure TFormMain.OnAppException(Sender: TObject; E: Exception);
    //handle all exception and log it
    //2003.02.26
    var
      FileName:String;
      LogFile:TextFile;
    begin
      FileName:=ChangeFileExt(Application.ExeName,'.log');
      AssignFile(LogFile,FileName);
      if FileExists(FileName) then
        Append(LogFile)
      else
        Rewrite(LogFile);
      WriteLn(LogFile,DateTimeToStr(Now)+':'+#9+E.ClassName+':'+#9+E.MEssage);
      CloseFile(LogFile);
      Application.ShowException(E);
    end;procedure TFormMain.TntFormCreate(Sender: TObject);
    begin
      Application.OnException:=OnAppException;
    ...
    end;
      

  4.   

    总之就是需要的时候自己抛出一个异常,自己捕获。
    try
       i:=111;
       if i>100 or i<1 then raise exception.create('please write a value between 1--100');
     except
       on e:exception do
        messageDlg( e.Message,mtinformation,[mbOk],0);
    end;
      

  5.   

    你可以写一个全局的Exception处理对象来接管应用程序出现的错误!具体的写法,你可以通过全局Exception来搞定,外加事件指针,就好了