SEHException Třída

Definice

Představuje chyby zpracování strukturovaných výjimek (SEH).Represents structured exception handling (SEH) errors.

public ref class SEHException : System::Runtime::InteropServices::ExternalException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class SEHException : System.Runtime.InteropServices.ExternalException
type SEHException = class
    inherit ExternalException
Public Class SEHException
Inherits ExternalException
Dědičnost
Atributy

Poznámky

Třída SEHException zpracovává chyby SEH, které jsou vyvolány z nespravovaného kódu, ale které nebyly namapovány na jinou výjimku .NET Framework.The SEHException class handles SEH errors that are thrown from unmanaged code, but that have not been mapped to another .NET Framework exception. Třída SEHException také odpovídá HRESULT E_FAIL (0x80004005).The SEHException class also corresponds to the HRESULT E_FAIL (0x80004005).

.NET Framework často narazí na nespravované výjimky SEH, které jsou automaticky namapovány na spravované ekvivalenty.The .NET Framework often encounters unmanaged SEH exceptions that are automatically mapped to managed equivalents. Existují dva běžné nespravované SEH výjimky:There are two common unmanaged SEH exceptions:

  • výjimky STATUS_NO_MEMORY jsou automaticky namapovány na třídu OutOfMemoryException.STATUS_NO_MEMORY exceptions are automatically mapped to the OutOfMemoryException class.

  • výjimky STATUS_ACCESS_VIOLATION jsou automaticky mapovány následujícím způsobem:STATUS_ACCESS_VIOLATION exceptions are automatically mapped as follows:

    • Pokud se použije legacyNullReferencePolicy, všechna porušení přístupu jsou namapována na třídu NullReferenceException.If legacyNullReferencePolicy is applied, all access violations are mapped to the NullReferenceException class.

    • Pokud adresa, na které byl proveden pokus o čtení a zápis, není v kódu kompilovaném JIT, je výjimka namapována na třídu AccessViolationException.If the address at which the read/write was attempted is not in JIT-compiled code, the exception is mapped to the AccessViolationException class.

    • Pokud se adresa, na které byl proveden pokus o čtení a zápis, v kódu kompilovaném JIT, ale není v oblasti oddílů s hodnotou null, je výjimka namapována na třídu AccessViolationException.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 AccessViolationException class.

    • Pokud není žádná legacyNullReferencePolicy a adresa, na které byl proveden pokus o čtení a zápis, je v kódu kompilovaném JIT a v oblasti oddílů s hodnotou null, je výjimka namapována na třídu NullReferenceException.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 NullReferenceException class.

Jakákoli výjimka SEH, která není automaticky namapována na konkrétní výjimku, je ve výchozím nastavení namapována na třídu SEHException.Any SEH exception that is not automatically mapped to a specific exception is mapped to the SEHException class by default.

Všimněte si, že třída SEHException nezpůsobí C++ volání nespravovaných destruktorů výjimek.Note that the SEHException class does not cause unmanaged C++ exception destructors to be called. Chcete-li zajistit C++ , že jsou volány nespravované destruktory výjimek, použijte následující syntaxi v bloku catch.To ensure that unmanaged C++ exception destructors are called, use the following syntax in the catch block.

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

Konstruktory

SEHException()

Inicializuje novou instanci třídy SEHException.Initializes a new instance of the SEHException class.

SEHException(SerializationInfo, StreamingContext)

Inicializuje novou instanci třídy SEHException z dat serializace.Initializes a new instance of the SEHException class from serialization data.

SEHException(String)

Inicializuje novou instanci třídy SEHException se zadanou zprávou.Initializes a new instance of the SEHException class with a specified message.

SEHException(String, Exception)

Inicializuje novou instanci třídy SEHException se zadanou chybovou zprávou a odkazem na vnitřní výjimku, která je příčinou této výjimky.Initializes a new instance of the SEHException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Vlastnosti

Data

Získá kolekci párů klíč/hodnota, které poskytují další uživatelsky definované informace o výjimce.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Zděděno od Exception)
ErrorCode

HRESULT Získá chybu.Gets the HRESULT of the error.

(Zděděno od ExternalException)
HelpLink

Získá nebo nastaví odkaz na soubor s nápovědě spojený s touto výjimkou.Gets or sets a link to the help file associated with this exception.

(Zděděno od Exception)
HResult

Získá nebo nastaví hodnotu HRESULT, kódované číselné hodnoty, která je přiřazena konkrétní výjimce.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Zděděno od Exception)
InnerException

Exception Získá instanci, která způsobila aktuální výjimku.Gets the Exception instance that caused the current exception.

(Zděděno od Exception)
Message

Získá zprávu s popisem aktuální výjimky.Gets a message that describes the current exception.

(Zděděno od Exception)
Source

Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu.Gets or sets the name of the application or the object that causes the error.

(Zděděno od Exception)
StackTrace

Načte řetězcovou reprezentaci okamžitých snímků v zásobníku volání.Gets a string representation of the immediate frames on the call stack.

(Zděděno od Exception)
TargetSite

Získá metodu, která vyvolá aktuální výjimku.Gets the method that throws the current exception.

(Zděděno od Exception)

Metody

CanResume()

Označuje, zda lze výjimku obnovit z a zda kód může pokračovat od bodu, ve kterém byla výjimka vyvolána.Indicates whether the exception can be recovered from, and whether the code can continue from the point at which the exception was thrown.

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetBaseException()

Při přepsání v odvozené třídě vrátí hodnotu Exception , která je hlavní příčinou jedné nebo více následných výjimek.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Zděděno od Exception)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetObjectData(SerializationInfo, StreamingContext)

Při přepsání v odvozené třídě nastaví na SerializationInfo výjimku informace o výjimce.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Zděděno od Exception)
GetType()

Získá typ modulu runtime aktuální instance.Gets the runtime type of the current instance.

(Zděděno od Exception)
MemberwiseClone()

Vytvoří kopii aktuálního Objectseznamu.Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který obsahuje hodnotu HRESULT chyby.Returns a string that contains the HRESULT of the error.

(Zděděno od ExternalException)

Události

SerializeObjectState

Nastane, pokud je serializovaná výjimka pro vytvoření objektu stavu výjimky, který obsahuje Serializovaná data o výjimce.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Zděděno od Exception)

Platí pro

Viz také