Delphi里有个抛出异常的函数我忘了叫啥了,要求如下:不用Raise,因为这个在调试状态下会出提示,也不用去改设置try
  抛出异常的那个函数
except
  ShowMessage('有异常');
end;

解决方案 »

  1.   

    当发生特定异常时做什么事,   有些异常是不必用户干预的 
        try 
            DateTime   :=   StrToDateTime(Edit1.Text); 
            ... 
        except 
            on   e:   EConvertError   do   //   当发生转换失败时,   其它异常这里管不着 
                showmessasge( '目期格式无效 ')         on   e:   其它可以处理的异常   do 
            ... 
        end; 
    注意下   on   e:   Exception   do   会响应所有的异常,   因为所有异常都是派生   Exception
    copy来的,应该是你要的
      

  2.   

    只有Raise,否则就只能触发特定的异常了。
    不会是记着C++里面的throw了吧?如果不是Delphi的,那倒可以用如API RaiseException.
      

  3.   


    这样的方法我知道,我要的是主动抛出异常的函数,就象Raise似的如果大家看不懂我说的问题,这样好了,除了Raise还有哪些方法可以主动抛出异常的???
      

  4.   


    完了,僵哥一发话基本上就把我的问题枪毙了,但是在我印象中Delphi里有个方法的
      

  5.   

    sorry,尚没见过。
    不过,设置ExceptionClass为nil可以防止IDE出现异常对话框。
      

  6.   


    通过设置是可以让IDE不提示的,方法:Tools->Debugger Options->Integrated debugging 打钩去掉帮我想想那个函数吧
      

  7.   

    Abort 是从 EAbort 过来的,可以激发 exception,其实质就是 Abort = RaiseException(),是一个不出现对话框的异常。所以 Abort 的行为和异常是一样的,其代码执行顺序也是follow异常的流程。
      

  8.   

    procedure Abort;  function ReturnAddr: Pointer;
      asm
              MOV     EAX,[EBP + 4]
      end;begin
      raise EAbort.CreateRes(@SOperationAborted) at ReturnAddr;
    end;
      

  9.   

    为了不引用 SysUtils 单元,减少程序体积,我是这样做的:  try
        GetMem(FAddress, FileSize);
       // if (FAddress = nil) then Abort; // SysUtils
        if (FAddress = nil) then begin
          FileSize := 0;
          FileSize := 0 div FileSize;  // Raise
        end;
      except  
       //申请内存失败
      end;