Using the IgnoreException Fix
Applies To: Windows 7, Windows Vista
This section includes information about using the IgnoreException compatibility fix, including the associated issues, the available command-line options and usage, and the recommended fix for a permanent solution.
Important
Be advised that you should only use this compatibility fix if you are absolutely certain that it is acceptable to ignore the exception. You might experience additional compatibility issues if you choose to incorrectly ignore an exception.
IgnoreException
IgnoreException enables an application to ignore Structure Exception Handling exceptions and to function properly. The IgnoreException fix calls to an internal API which is equivalent to the AddVectoredExceptionHandler public API. The fix then passes a pointer to the exception handler, which handles the exception as defined by the command-line options configured by the end user.
Investigating the Issue
Application-related issues that can be resolved by applying the IgnoreException fix are typically detected by using a debugger tool, which will enable you to extract detailed information about the specific exception. You must understand the code and the behavior of the exception. in order to correctly predict the results of ignoring the exception. You must also follow up with extensive testing to ensure that you are not proceeding with the system in an undefined state after the exception occurs.
Command-Line Options
The IgnoreException compatibility fix uses the following syntax to specify exceptions.
EXCEPTION_NAME:EXCEPTION_LEVEL;EXCEPTION1_NAME:EXCEPTION1_LEVEL;...
Where the EXCEPTION_NAME can be one of the following values:
ACCESS_VIOLATION_READ
ACCESS_VIOLATION_WRITE
ARRAY_BOUNDS_EXCEEDED
BREAKPOINT
DATATYPE_MISALIGNMENT
FLT_DENORMAL_OPERAND
FLT_DIVIDE_BY_ZERO
FLT_INEXACT_RESULT
FLT_INVALID_OPERATION
FLT_OVERFLOW
FLT_STACK_CHECK
FLT_UNDERFLOW
ILLEGAL_INSTRUCTION
IN_PAGE_ERROR
INT_DIVIDE_BY_ZERO
INT_OVERFLOW
INVALID_DISPOSITION
NONCONTINUABLE_EXCEPTION
PRIV_INSTRUCTION
SINGLE_STEP
STACK_OVERFLOW
INVALID_HANDLE
And where the EXCEPTION_LEVEL can be one of the following values, as listed in the following table:
Accepted EXCEPTION_LEVEL | Description |
---|---|
0 |
Does not ignore the first exception. |
1 |
Ignores the first chance exception. |
2 |
Ignores the second chance exception |
3 |
Exits the process on the second chance exception. |
Example
ACCESS_VIOLATION_READ:2; ACCESS_VIOLATION_WRITE:2; FLT_OVERFLOW:0
Fixing Your Code
The application should be modified to resolve the issue that is causing the exception to occur. If that is not possible, you must include error handling that can address the expected exception.