The exception information table represents four types of exception handlers for protected blocks:
- A finally handler that executes whenever the block exits, whether that occurs by normal control flow or by an unhandled exception.
- A fault handler that must execute if an exception occurs, but does not execute on completion of normal control flow.
- A type-filtered handler that handles any exception of a specified class or any of its derived classes.
- A user-filtered handler that runs user-specified code to determine whether the exception should be handled by the associated handler or should be passed to the next protected block.