The SEHException class handles SEH errors that are thrown from unmanaged code, but that have not been mapped to another .NET Framework exception. The SEHException class also responds to the HRESULT E_FAIL, which has the value 0x80004005.
The .NET Framework often encounters unmanaged SEH exceptions that are automatically mapped to managed equivalents. There are two common unmanaged SEH exceptions:
Any SEH exception that is not automatically mapped to a specific exception is mapped to the SEHException class by default.
For more information, search on "unmanaged exceptions" and "Structured Exception Handling" in the MSDN Library.
Note that the SEHException class does not cause unmanaged C++ exception destructors to be called. To ensure that unmanaged C++ exception destructors are called, use the following syntax in the catch block.
[Visual Basic]
Catch
' Handle catch here.
End Try
[C#]
catch
{
// Handle catch here.
}
[C++]
catch(…)
{
// Handle catch here.
}