SEHException Class

Represents Structured Exception Handler (SEH) errors.

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)

public class SEHException : ExternalException
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class SEHException extends ExternalException
public class SEHException extends ExternalException

The SEHException class handles SEH errors that are thrown from unmanaged code, but 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. For example, a STATUS_NO_MEMORY SEH exception is automatically mapped to the OutOfMemoryException class and the STATUS_ACCESS_VIOLATION SEH exception is automatically mapped the NullReferenceException class. However, any SEH exception that is not automatically mapped to a specific exception is mapped to the SEHException class by default.

For more information about SEH exceptions, see the documentation for unmanaged exceptions at

Note that the SEHException class does not cause unmanaged C++ exception destructors be called. To ensure that unmanaged C++ exception destructors are called, use the following syntax in the catch block.

[Visual Basic]


' Handle catch here.

End Try




// Handle catch here.





// Handle catch here.



Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0