mscorlib [00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00] 1.0.5000.0 2.0.0.0 4.0.0.0 Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details. System.Runtime.InteropServices.ExternalException System.Runtime.InteropServices.ComVisible(true)

The class handles SEH errors that are thrown from unmanaged code, but that have not been mapped to another .NET Framework exception. The 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:

STATUS_NO_MEMORY exceptions are automatically mapped to the class.

STATUS_ACCESS_VIOLATION exceptions are automatically mapped as follows:

If legacyNullReferencePolicy is applied, all access violations are mapped to the class.

If the address at which the read/write was attempted is not in JIT-compiled code, the exception is mapped to the class.

If the address at which the read/write was attempted is in JIT-compiled code, but it is not in the OS Null partition area, the exception is mapped to the class.

If there is no legacyNullReferencePolicy, and the address at which the read/write was attempted is in JIT-compiled code and in the OS Null partition area, the exception is mapped to the class.

Any SEH exception that is not automatically mapped to a specific exception is mapped to the class by default.

For more information, search on "unmanaged exceptions" and "Structured Exception Handling" in the MSDN Library.

Note that the 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. }`

Represents structured exception handling (SEH) errors.

- Constructor
  1.0.5000.0
  2.0.0.0
  4.0.0.0

  The class inherits from the class. This constructor sets the properties of the object to the values in the following table.

  Property

  Value

  A null reference (Nothing in Visual Basic).

  A localized error message string.

  Initializes a new instance of the class.

- Constructor
  1.0.5000.0
  2.0.0.0
  4.0.0.0

  inherits from . This constructor sets the properties of the object as shown in the following table.

  Property

  Value

  A null reference (Nothing in Visual Basic).

  .

  Initializes a new instance of the class with a specified message.

  The message that indicates the reason for the exception.
- Constructor
  1.0.5000.0
  2.0.0.0
  4.0.0.0

  This constructor is called during deserialization to reconstitute the exception object transmitted over a stream. For more information, see the namespace.

  inherits from .

  Initializes a new instance of the class from serialization data.

  The object that holds the serialized object data.
  The contextual information about the source or destination.
- Constructor
  1.0.5000.0
  2.0.0.0
  4.0.0.0

  An exception that is thrown as a direct result of a previous exception should include a reference to the previous exception in the property. The property returns the same value that is passed into the constructor, or null if the property does not supply the inner exception value to the constructor.

  The following table shows the initial property values for an instance of .

  Property

  Value

  The inner exception reference.

  The error message string.

  Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.

  The error message that explains the reason for the exception.
  The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Boolean

  If returns true, then a filtered exception handler can correct the problem that caused the exception, and the code will continue from the point at which the exception was thrown.

  Indicates whether the exception can be recovered from, and whether the code can continue from the point at which the exception was thrown.

  Always false, because resumable exceptions are not implemented.