Поделиться через


SEHException Класс

Определение

Представляет ошибки структурированной обработки исключений (SEH).

public ref class SEHException : Exception
public ref class SEHException : System::Runtime::InteropServices::ExternalException
public class SEHException : Exception
public class SEHException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
public class SEHException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SEHException : System.Runtime.InteropServices.ExternalException
type SEHException = class
    inherit Exception
type SEHException = class
    inherit ExternalException
[<System.Serializable>]
type SEHException = class
    inherit ExternalException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SEHException = class
    inherit ExternalException
Public Class SEHException
Inherits Exception
Public Class SEHException
Inherits ExternalException
Наследование
SEHException
Наследование
Атрибуты

Комментарии

Класс SEHException обрабатывает ошибки SEH, которые возникают из неуправляемого кода, но не сопоставлены с другим исключением .NET Framework. Класс SEHException также соответствует HRESULTE_FAIL (0x80004005).

Платформа .NET Framework часто встречает неуправляемые исключения SEH, которые автоматически сопоставляются с управляемыми эквивалентами. Существует два распространенных неуправляемых исключения SEH:

  • STATUS_NO_MEMORY исключения автоматически сопоставляются с классом OutOfMemoryException.

  • STATUS_ACCESS_VIOLATION исключения автоматически сопоставляются следующим образом:

    • Если применяется legacyNullReferencePolicy, все нарушения доступа сопоставляются с классом NullReferenceException.

    • Если адрес, по которому была предпринята попытка чтения и записи, не находится в скомпилированном JIT-коде, исключение сопоставляется с классом AccessViolationException.

    • Если адрес, по которому была предпринята попытка чтения и записи, находится в скомпилированном JIT-коде, но он не находится в области секции NULL ОС, исключение сопоставляется с классом AccessViolationException.

    • Если нет legacyNullReferencePolicy, а адрес, по которому была предпринята попытка чтения и записи, находится в скомпилированном JIT-коде и в области секции NULL ОС, исключение сопоставляется с классом NullReferenceException.

Любое исключение SEH, которое не сопоставляется с определенным исключением, сопоставляется с классом SEHException по умолчанию.

Обратите внимание, что класс SEHException не приводит к вызову неуправляемых деструкторов исключений C++. Чтобы убедиться, что неуправляемые деструкторы исключений C++ вызываются, используйте следующий синтаксис в блоке catch.

Catch
     ' Handle catch here.
End Try
catch
{
     // Handle catch here.
}
catch(…)
{
     // Handle catch here.
}

Конструкторы

SEHException()

Инициализирует новый экземпляр класса SEHException.

SEHException(SerializationInfo, StreamingContext)
Устаревшие..

Инициализирует новый экземпляр класса SEHException из данных сериализации.

SEHException(String)

Инициализирует новый экземпляр класса SEHException с указанным сообщением.

SEHException(String, Exception)

Инициализирует новый экземпляр класса SEHException с указанным сообщением об ошибке и ссылкой на внутреннее исключение, которое является причиной этого исключения.

Свойства

Data

Возвращает коллекцию пар "ключ-значение", которые предоставляют дополнительные пользовательские сведения об исключении.

(Унаследовано от Exception)
ErrorCode

Возвращает HRESULT ошибки.

(Унаследовано от ExternalException)
HelpLink

Возвращает или задает ссылку на файл справки, связанный с этим исключением.

(Унаследовано от Exception)
HResult

Возвращает или задает HRESULT, закодированное числовое значение, назначенное определенному исключению.

(Унаследовано от Exception)
InnerException

Возвращает экземпляр Exception, вызвавшего текущее исключение.

(Унаследовано от Exception)
Message

Возвращает сообщение, описывающее текущее исключение.

(Унаследовано от Exception)
Source

Возвращает или задает имя приложения или объекта, вызывающего ошибку.

(Унаследовано от Exception)
StackTrace

Возвращает строковое представление непосредственных кадров в стеке вызовов.

(Унаследовано от Exception)
TargetSite

Возвращает метод, который вызывает текущее исключение.

(Унаследовано от Exception)

Методы

CanResume()

Указывает, можно ли восстановить исключение и продолжить код с точки, в которой было создано исключение.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetBaseException()

При переопределении в производном классе возвращает Exception, которая является основной причиной одного или нескольких последующих исключений.

(Унаследовано от Exception)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)
Устаревшие..

При переопределении в производном классе задает SerializationInfo с информацией об исключении.

(Унаследовано от Exception)
GetType()

Возвращает тип среды выполнения текущего экземпляра.

(Унаследовано от Exception)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Создает и возвращает строковое представление текущего исключения.

(Унаследовано от Exception)
ToString()

Возвращает строку, содержащую HRESULT ошибки.

(Унаследовано от ExternalException)

События

SerializeObjectState
Устаревшие..

Происходит при сериализации исключения для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

(Унаследовано от Exception)

Применяется к

См. также раздел