System.Exception class (OpenEdge-enhanced)
- Last Updated: February 11, 2026
- 2 minute read
- OpenEdge
- Version 13.0
- Documentation
(Windows only; .NET)
.NET errors are represented by error objects known as exceptions, and the .NET
System.Exception class is the base class for all .NET
Exception objects. To enable an ABL application to trap .NET exceptions
that are raised from .NET objects, OpenEdge has enhanced System.Exception
to implement the Progress.Lang.Error interface. By implementing this
interface, most .NET exceptions that are raised in the ABL context can be handled by both
traditional and structured ABL error handling constructs in much the same way as ABL
errors.
When using structured error handling, you can catch and throw a
System.Exception object and consult the same properties and methods as
for a Progress.Lang.ProError class.
Serializable:
No
Constructors
|
Super Class
System.Object class from .NET
Interfaces
Public Properties
| CallStack property | NumMessages property | Severity property |
Public Methods
| GetMessage( ) method (Class) | GetMessageNum( ) method |
Public Events
This class does not contain events.
Notes
- Some .NET UI controls trap and handle errors before they get to the AVM.
However, some kinds of exceptions, such as
System.AccessViolationException, causeApplication:Run( )to terminate and raise a STOP condition on the executing WAIT-FOR or PROCESS EVENTS statement. You can trap this condition using the ON STOP phrase of an enclosing block. However, becauseApplication:Run( )exits and all displayed forms are closed, the most that you can do is to clean-up and attempt a graceful close of your application. - All .NET exceptions have a
Messageproperty from theSystem.Exceptionbase class. In addition, if there was a chain of errors that lead to the current exception, anInnerExceptionproperty references the most recentExceptionobject in that chain ofExceptionobjects, and so on, for any number of inner exceptions. Each inner exception, then, is just anotherExceptionobject (or something derived from it), with its ownMessageproperty. In addition, specific types ofExceptionobjects have additional information available from custom properties. For example, theFileNotFoundExceptionhas aFileNameproperty, which is the name of the file that cannot be found.Your ABL application can access all of the messages in the .NET
Exceptionobject (i.e., the message from the object itself plus any from inner exceptions) using the methods ofProgress.Lang.Error. However, if you want to access any additional information such as theFileNamecustom property of theFileNotFoundExceptionobject, you must do so using the native properties and methods of the .NETExceptionobject itself.
See also
PROCESS EVENTS statement, Progress.Lang.Error interface, WAIT-FOR statement (.NET and ABL)