SEHException Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje błędy obsługi wyjątków strukturalnych (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
- Dziedziczenie
- Dziedziczenie
- Atrybuty
Uwagi
Klasa SEHException obsługuje błędy SEH, które są zgłaszane z niezarządzanego kodu, ale nie zostały zamapowane na inny wyjątek programu .NET Framework. Klasa SEHException odpowiada również HRESULT
E_FAIL
(0x80004005).
Program .NET Framework często napotyka niezarządzane wyjątki SEH, które są automatycznie mapowane na zarządzane odpowiedniki. Istnieją dwa typowe niezarządzane wyjątki SEH:
STATUS_NO_MEMORY
wyjątki są automatycznie mapowane na klasę OutOfMemoryException.STATUS_ACCESS_VIOLATION
wyjątki są automatycznie mapowane w następujący sposób:W przypadku zastosowania
legacyNullReferencePolicy
wszystkie naruszenia dostępu są mapowane na klasę NullReferenceException.Jeśli adres, pod którym podjęto próbę odczytu/zapisu, nie znajduje się w kodzie skompilowanym w trybie JIT, wyjątek jest mapowany na klasę AccessViolationException.
Jeśli adres, pod którym podjęto próbę odczytu/zapisu, znajduje się w kodzie skompilowanym w trybie JIT, ale nie znajduje się w obszarze partycji Null systemu operacyjnego, wyjątek jest mapowany na klasę AccessViolationException.
Jeśli nie ma
legacyNullReferencePolicy
, a adres, pod którym podjęto próbę odczytu/zapisu, znajduje się w kodzie skompilowanym JIT i w obszarze partycji Null systemu operacyjnego, wyjątek jest mapowany na klasę NullReferenceException.
Każdy wyjątek SEH, który nie jest automatycznie mapowany na określony wyjątek, jest domyślnie mapowany na klasę SEHException.
Należy pamiętać, że klasa SEHException nie powoduje wywołania niezarządzanych destruktorów wyjątków języka C++. Aby upewnić się, że wywoływane są niezarządzane destruktory wyjątków języka C++, użyj następującej składni w bloku catch
.
Catch
' Handle catch here.
End Try
catch
{
// Handle catch here.
}
catch(…)
{
// Handle catch here.
}
Konstruktory
SEHException() |
Inicjuje nowe wystąpienie klasy SEHException. |
SEHException(SerializationInfo, StreamingContext) |
Przestarzałe.
Inicjuje nowe wystąpienie klasy SEHException z danych serializacji. |
SEHException(String) |
Inicjuje nowe wystąpienie klasy SEHException z określonym komunikatem. |
SEHException(String, Exception) |
Inicjuje nowe wystąpienie klasy SEHException z określonym komunikatem o błędzie i odwołaniem do wyjątku wewnętrznego, który jest przyczyną tego wyjątku. |
Właściwości
Data |
Pobiera kolekcję par klucz/wartość, które zapewniają dodatkowe informacje zdefiniowane przez użytkownika dotyczące wyjątku. (Odziedziczone po Exception) |
ErrorCode |
Pobiera |
HelpLink |
Pobiera lub ustawia link do pliku pomocy skojarzonego z tym wyjątkiem. (Odziedziczone po Exception) |
HResult |
Pobiera lub ustawia HRESULT, zakodowaną wartość liczbową przypisaną do określonego wyjątku. (Odziedziczone po Exception) |
InnerException |
Pobiera wystąpienie Exception, które spowodowało bieżący wyjątek. (Odziedziczone po Exception) |
Message |
Pobiera komunikat opisujący bieżący wyjątek. (Odziedziczone po Exception) |
Source |
Pobiera lub ustawia nazwę aplikacji lub obiektu, który powoduje błąd. (Odziedziczone po Exception) |
StackTrace |
Pobiera reprezentację ciągu natychmiastowych ramek na stosie wywołań. (Odziedziczone po Exception) |
TargetSite |
Pobiera metodę, która zgłasza bieżący wyjątek. (Odziedziczone po Exception) |
Metody
CanResume() |
Wskazuje, czy wyjątek można odzyskać od i czy kod może być kontynuowany od momentu zgłoszenia wyjątku. |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
GetBaseException() |
Po zastąpieniu w klasie pochodnej zwraca Exception, która jest główną przyczyną co najmniej jednego kolejnego wyjątku. (Odziedziczone po Exception) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Przestarzałe.
Po zastąpieniu w klasie pochodnej ustawia SerializationInfo z informacjami o wyjątku. (Odziedziczone po Exception) |
GetType() |
Pobiera typ środowiska uruchomieniowego bieżącego wystąpienia. (Odziedziczone po Exception) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
ToString() |
Tworzy i zwraca reprezentację ciągu bieżącego wyjątku. (Odziedziczone po Exception) |
ToString() |
Zwraca ciąg zawierający hrESULT błędu. (Odziedziczone po ExternalException) |
Zdarzenia
SerializeObjectState |
Przestarzałe.
Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku zawierającego serializowane dane dotyczące wyjątku. (Odziedziczone po Exception) |