|
Exception-Handler Syntax
The try and except keywords are used to construct a frame-based exception handler. The following
example shows the structure of a try-except exception handler.
try {
// guarded body of code
}
except (filter-expression) {
// exception-handler block
}
Note that the try block and the exception-handler block require braces ({}). Using a goto statement to jump into the body of a try block or into an exception-handler block is not permitted. This rule applies
to both try-except and try-finally statements.
The try block contains the guarded body of code that the exception handler protects.
A function can have any number of try-except statements, and these exception-handling statements can be nested within the
same function or in different functions. If an exception occurs within the try block, the system takes control and begins the search for an exception
handler. For a detailed description of this search, see Exception Handling.
The exception handler receives only exceptions that occur within a single
thread. This means that if a try block contains a call to the CreateProcess or CreateThread function, exceptions that occur within the new process or thread are not
dispatched to this handler.
The system evaluates the filter expression of each exception handler guarding
the code in which the exception occurred until either the exception is handled
or there are no more handlers. A filter expression must be evaluated as one of
the three following values.
EXCEPTION_EXECUTE_HANDLER
|
|
| The system transfers control to the exception handler, and execution continues
in the stack frame in which the handler is found.
|
EXCEPTION_CONTINUE_SEARCH
|
|
| The system continues to search for a handler.
|
EXCEPTION_CONTINUE_EXECUTION
|
|
| The system stops its search for a handler and returns control to the point at
which the exception occurred. If the exception is noncontinuable, this results
in a EXCEPTION_NONCONTINUABLE_EXCEPTION exception.
|
The filter expression is evaluated in the context of the function in which the try-except statement is located, even though the exception may have occurred in a
different function. This means that the filter expression can access the function's
local variables. Similarly, the exception-handler block can access the local
variables of the function in which it is located.
For more information about filter expressions and filter functions, see Frame-based Exception Handling.
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|