最近新接了个项目,使用delphi。我现在对怎么样进行错误的处理很迷惑,看了几本delphi的书。说delphi中如果使用try catch finally这种模式来处理错误,最好是处理系统级别,或者难以预料的错误。对那种可以预料到的逻辑性错误最好是使用判断语句,然后返回错误代码的方式。后者对错误的处理方式更像windows api中的那种,是面向过程程序设计中的通用方法。因为以前一直做java的项目,所以我对错误的处理更偏向于使用exception的机制。现在新用delphi,没有这方面的经验,让我难以取舍,请delphi的同志了给小弟指点一下迷津。最好把你们在delphi项目中错误处理的总体规划说出来向小弟学习一下。谢谢。

解决方案 »

  1.   

    throw new Exception(.........);
    等同于
    raise Exception.Create(........);try
    {
    ....
    }
    catch(Exception1 e)
    {
    ...
    }
    catch(Exception2 e)
    {
    .....
    }
    finally
    {
    ....
    }
    等同于
    try
      try
      begin
        ......
      end;
      except
        on E:Exception1 do
        begin
        ......
        end;
        on E:Exception2 do
        begin
         ......
        end;
      end;//try
    finally
    .....
    end;//try
      

  2.   

    try
        //...
      except on e:exception do
         showmessage(e.Message);
      end;
      

  3.   

    你接受的是完美的使用方法, 實際中, 有些時候, 你應該控制的, 好象 java 中, 可以盡量讓未确定錯誤向上傳, 但delphi中,似乎, 還是要適當控制!
      

  4.   

    我不是提语法上的问题,而是delphi中整体的错误解决方案。
    好比一个函数,我输入的参数有逻辑上的错误,这个时候在delphi中是通过抛出一个application级别的异常来出来还是通过传回一个errorcode来处理。在c语言中是通过errorcode来处理,java中通常是使用提前定义好的application级别的exception来处理。delphi中怎么处理比较好,因为delphi是oo,但不是纯oo。而且主要用于桌面开发,效率很重要。书上讲exception机制会降低效率,可具体降低多少,有经验的同志大概心理有个底吧。我很想得到这方面的建议。
      

  5.   

    aiirii。你们做delphi的项目的时候,通常是使用application级别的异常来处理逻辑错误的发生。还是使用errorcode这种方式。恩,我这里的逻辑错误通常是指,比如用户传入的数据参数有错误,这种错误还需要给用户返回有用的错误提示信息。