COMException Klasa

Definicja

Wyjątek, który jest zgłaszany, gdy nierozpoznany HRESULT jest zwracany z wywołania metody COM.

public ref class COMException : Exception
public ref class COMException : System::Runtime::InteropServices::ExternalException
public class COMException : Exception
public class COMException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
public class COMException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class COMException : System.Runtime.InteropServices.ExternalException
type COMException = class
    inherit Exception
type COMException = class
    inherit ExternalException
[<System.Serializable>]
type COMException = class
    inherit ExternalException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type COMException = class
    inherit ExternalException
Public Class COMException
Inherits Exception
Public Class COMException
Inherits ExternalException
Dziedziczenie
COMException
Dziedziczenie
Pochodne
Atrybuty

Uwagi

Środowisko uruchomieniowe języka wspólnego przekształca dobrze znane elementy HRESULTs w celu .NET Framework wyjątków, umożliwiając obiektom COM zwracanie znaczących informacji o błędach zarządzanym klientom. Funkcja HRESULT do mapowania wyjątków działa również w innym kierunku, zwracając określone wartości HRESULTs do niezarządzanych klientów. Aby uzyskać szczegółowe informacje o mapowaniu, zobacz Instrukcje: mapowanie wartości HRESULTs i wyjątków.

Gdy środowisko uruchomieniowe napotka nieznany hrESULT (HRESULT, który nie zawiera określonego, odpowiadającego mu wyjątku), zgłasza wystąpienie COMException klasy. Ten wyjątek all-purpose uwidacznia te same elementy członkowskie co każdy wyjątek i dziedziczy właściwość publiczną ErrorCode , która zawiera HRESULT zwracany przez obiekt wywoływany. Jeśli komunikat o błędzie jest dostępny dla środowiska uruchomieniowego (uzyskanego z interfejsu IErrorInfo lub Err obiektu w Visual Basic lub w niektórych przypadkach z systemu operacyjnego), komunikat zostanie zwrócony do obiektu wywołującego. Jeśli jednak deweloper składnika COM nie uwzględni komunikatu o błędzie, środowisko uruchomieniowe zwraca ośmiocyfrową wartość HRESULT zamiast ciągu komunikatu. Posiadanie hrESULT umożliwia obiektowi wywołującego ustalenie przyczyny wyjątku ogólnego.

Obsługa wyjątku COMException

Poniżej przedstawiono niektóre zagadnienia dotyczące rozwiązywania problemów z COMException wyjątkiem.

ErrorCode Sprawdzanie właściwości
Gdy środowisko uruchomieniowe napotka nieznany hrESULT i zgłasza COMException wyjątek, ErrorCode właściwość zawiera komunikat o błędzie lub, jeśli komunikat o błędzie jest niedostępny, ośmiocyfrowa wartość HRESULT. Komunikat o błędzie lub wartość HRESULT może pomóc w ustaleniu przyczyny wyjątku.

Aby uzyskać listę wartości HRESULT, zobacz Typowe wartości HRESULT.

Argumenty opóźnione i obiekty Microsoft Office
Podczas przekazywania późnych argumentów do metod obiektów Microsoft Office może zostać zgłoszony wyjątek, COMException gdy obiekty są obiektami COM. Późny binder zakłada, że takie wywołania metody obejmują ByRef parametr i że przekazana właściwość ma metodę set dostępu. Jeśli właściwość nie, .NET Framework generuje MissingMethodException wyjątek (z CORE_E_MISSINGMETHOD HRESULT ). Aby obejść to zachowanie, użyj wczesnych obiektów powiązanych lub przekaż zmienną zamiast właściwości obiektu.

Visual Studio i proces hostingu
Com służy do komunikowania się między Visual Studio a procesem hostingu. Ponieważ jest on używany przed uruchomieniem kodu, wywołanie funkcji CoInitializeSecurity powoduje zgłoszenie tego wyjątku.

W niektórych przypadkach uruchomienie Visual Studio jako administrator może rozwiązać problem. Możesz również wyłączyć proces hostingu.

Zgłaszanie wyjątku COMException

Chociaż można użyć COMException klasy , aby zwrócić określone elementy HRESULTs do klientów niezarządzanych, zgłaszanie określonego wyjątku .NET Framework jest lepsze niż użycie wyjątku ogólnego. Należy wziąć pod uwagę, że klienci zarządzani, a także klienci niezarządzani mogą używać obiektu .NET Framework, a zgłaszanie hrESULT do zarządzanego obiektu wywołującego jest mniej zrozumiałe niż zgłaszanie wyjątku.

Konstruktory

COMException()

Inicjuje nowe wystąpienie klasy COMException z domyślnymi wartościami.

COMException(SerializationInfo, StreamingContext)

Inicjuje COMException nowe wystąpienie klasy z danych serializacji.

COMException(String)

Inicjuje COMException nowe wystąpienie klasy z określonym komunikatem.

COMException(String, Exception)

Inicjuje nowe wystąpienie COMException klasy z określonym komunikatem o błędzie i odwołaniem do wyjątku wewnętrznego, który jest przyczyną tego wyjątku.

COMException(String, Int32)

Inicjuje COMException nowe wystąpienie klasy z określonym komunikatem i kodem błędu.

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

HRESULT Pobiera błąd.

(Odziedziczone po ExternalException)
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

Exception Pobiera wystąpienie, 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

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetBaseException()

W przypadku zastąpienia w klasie pochodnej zwraca Exception 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)

Po przesłonięciu w klasie pochodnej ustawia SerializationInfo wartość 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 Objectelementu .

(Odziedziczone po Object)
ToString()

Konwertuje zawartość wyjątku na ciąg.

ToString()

Tworzy i zwraca reprezentację ciągu bieżącego wyjątku.

(Odziedziczone po Exception)

Zdarzenia

SerializeObjectState
Nieaktualne.

Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku, który zawiera serializowane dane dotyczące wyjątku.

(Odziedziczone po Exception)

Dotyczy

Zobacz też