想做一个程序中出现异常时,能够捕获的异常出现的位置,发生原因的异常类。
问问兄弟们有没有现成的?

解决方案 »

  1.   

    try
    //这里写如要查异常的代码
    except on E:Exception do
     begin
       Application.Showmessage(pchar(E.Message),mb_ok+mb_iconeror);
     end;
    end;
      

  2.   

    try
    //
    except
      on E: Exception do
      begin
        Application.ShowMessage(E.Message);
      end;
    end;
      

  3.   

    //给你个例子吧
    function ComputeSomething;
    begin
      try
        ...
      except
        on Err1: EDivByZero do
          ShowMessage('零不能做除数');
        on Err2: EMathError do
          ShowMessage(Err2.ErrorInfo);
        on E: Exception do
          ShowMessage(E.Message);
      else
        raise;  //重新引发这个异常
      end;
    end;
      

  4.   

    是我的问题不明确,对不起大家了.
    我的意思是要做一个全局的异常处理,就像截获Application.OnException一样,但是Application.OnException只能截获程序未处理的异常,我希望是不管什么异常,我都能先收到,
    然后把异常发生的位置,比如源代码的行号,引发异常的原因等记录下来,做个日志.
    最近研究了一下,好像能做的就是通过汇编访问FS[0]寄存器,这里保存有当前异常,通过这个可以访问到
    异常链表,可是这好像只能是windos异常,delphi自己的异常类捉不到,而且无法获得异常出现的源码行号,只能得到汇编代码的行和地址.
      

  5.   

    请问babyboy(榆木疙瘩):
    你找到这个通用的类了没有?我也想要一个,毕竟每个代码里都使用try方式会很累人能不能抓取错误,一个窗体、程序由一个统一的地方来进行各种错误处理?
      

  6.   

    http://www.eurekalog.com/index.php
    去这里看看