VCL Exception Classes
Go Up to Handling Exceptions in VCL Applications
VCL includes a large set of built-in exception classes for automatically handling divide-by-zero errors, file I/O errors, invalid typecasts, and many other exception conditions. All VCL exception classes descend from one root object called System.SysUtils.Exception. Exception provides a consistent interface for applications to handle exceptions. It provides the string for the message that VCL exceptions display by default.
The following table lists a selection of the exception classes defined in VCL:
Selected exception classes :
Exception class | Description |
---|---|
EAbort |
Stops a sequence of events without displaying an error message dialog box. |
EAccessViolation |
Checks for invalid memory access errors. |
EBitsError |
Prevents invalid attempts to access a Boolean array. |
EComponentError |
Signals an invalid attempt to register or rename a component. |
EConvertError |
Indicates string or object conversion errors. |
EDatabaseError |
Specifies a database access error. |
EDBEditError |
Catches data incompatible with a specified mask. |
EDivByZero |
Catches integer divide-by-zero errors. |
EExternalException |
Signifies an unrecognized exception code. |
EInOutError |
Represents a file I/O error. |
EIntOverflow |
Specifies integer calculations whose results are too large for the allocated register. |
EInvalidCast |
Checks for illegal typecasting. |
EInvalidGraphic |
Indicates an attempt to work with an unrecognized graphic file format. |
EInvalidOperation |
Occurs when invalid operations are attempted on a component. |
EInvalidPointer |
Results from invalid pointer operations. |
EMenuError |
Involves a problem with menu item. |
EOleCtrlError |
Detects problems with linking to ActiveX controls. |
EOleError |
Specifies OLE automation errors. |
EPrinterError |
Signals a printing error. |
EPropertyError |
Occurs on unsuccessful attempts to set the value of a property. |
ERangeError |
Indicates an integer value that is too large for the declared type to which it is assigned. |
ERegistryException |
Specifies registry errors. |
EZeroDivide |
Catches floating-point divide-by-zero errors. |
There are other times when you will need to create your own exception classes to handle unique situations. You can declare a new exception class by making it a descendant of type Exception and creating as many constructors as you need (or copy the constructors from an existing class in the SysUtils unit).