Error handling in Delphi - by joewnn

Discussion in 'Archives' started by Six, May 12, 2007.

Error handling in Delphi - by joewnn
  1. Unread #1 - May 12, 2007 at 11:30 AM
  2. Six
    Joined:
    Jan 21, 2007
    Posts:
    1,482
    Referrals:
    4
    Sythe Gold:
    12

    Six Guru

    Error handling in Delphi - by joewnn

    Delphi error handling is different from vb error handling. In vb, you would normally put at the top, "On error resume next" or "on error goto errhandling". In delphi, there is a whole section for dealing with errors called "except".

    In each function with an except section, you will add "try" at the top, to indicate that if you get errors, the program will execute the code in except.

    First add a button and a listbox (listbox1) to your form. Open up the button's code and place a "try" after "begin". Write all of your code here that could cause errors. The code I used was simple. Simple add this after try..

    Code:
    listbox1.Items[1]

    Of course, there is no items[1] in the listbox.. unless you added one, so it will definitely cause an error.

    Now after all of your code add the "except" line. Then after that add "end;". In between the except and end you add your error handling code.

    There are different errors you can look for.

    If you want to pick up any error, add this.

    Code:
    on e:exception do showmessage(e.message); //or any other message you want
    Now if you want to look for specific errors, replace exception with the error name. Here is a list of errors from another site.


    Code:
    Exception             Base class
    EAbort                Abort without dialog
    EAbstractError        Abstract method error
    AssertionFailed       Assert call failed
    EBitsError            Boolean array error
    ECommonCalendarError  Calendar calc error
       EDateTimeError      DateTime calc error
       EMonthCalError      Month calc error
       EConversionError    Raised by Convert
    EConvertError         Object convert error
    EDatabaseError        Database error
    EExternal             Hardware/Windows error
       EAccessViolation    Access violation
       EControlC           User abort occured
       EExternalException  Other Internal error
    EIntError             Integer calc error
       EDivByZero          Integer Divide by zero
       EIntOverflow        Integer overflow
       ERangeError         Out of value range
    EMathError            Floating point error
       EInvalidArgument    Bad argument value
       EInvalidOp          Inappropriate operation
       EOverflow           Value too large
       EUnderflow          Value too small
       EZeroDivide         Floating Divide by zero
    EStackOverflow        Severe Delphi problem
    EHeapException        Dynamic memory problem
       EInvalidPointer     Bad memory pointer
       EOutOfMemory        Cannot allocate memory
    EInOutError           IO error
    EInvalidCast          Object casting error
    EInvalidOperation     Bad component op
    EMenuError            Menu item error
    EOSError              Operating system error
    EParserError          Parsing error
    EPrinter              Printer error
    EPropertyError        Class property error#
    EPropReadOnly         Invalid property access
    EPropWriteOnly        Invalid property access
    EThread               Thread error
    EVariantError         Variant problem

    Here is an example- the code for the listbox that creates an error makes an eStringListError.

    Code:
    on e:estringlisterror do showmessage('Estringlisterror ' + e.message);

    Here is all the sample code (in between begin and end; of the button)


    Code:
    try
    listbox1.Items[1]
    except
    on e:exception do showmessage(e.message); //or any other message you want
    //on e:estringlisterror do showmessage('Estringlisterror ' + e.message);
    end;
     
< Firecapeing! | selling a def pure >

Users viewing this thread
1 guest


 
 
Adblock breaks this site