COMException Clase

Definición

Excepción que se produce cuando se devuelve un HRESULT no reconocido desde una llamada al método 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
Herencia
COMException
Herencia
Derivado
Atributos

Comentarios

La COMException clase es la excepción que se produce cuando se devuelve un HRESULT no reconocido desde una llamada al método COM.

El entorno de ejecución de lenguaje común transforma los HRESULT conocidos en las excepciones de .NET, para que los objetos COM devuelvan información de error significativa a los clientes administrados. El resultado HRESULT de una asignación de excepción también funciona en sentido contrario, ya que devuelve HRESULT específicos a clientes no administrados. Para ver los detalles sobre cómo mapear, consulte Cómo asignar HRESULT y excepciones.

Cuando el tiempo de ejecución encuentra un HRESULT desconocido (un HRESULT que carece de una excepción específica y correspondiente), produce una instancia de la COMException clase . Esta excepción de uso completo expone los mismos miembros que cualquier excepción y hereda una propiedad pública ErrorCode que contiene el HRESULT devuelto por el destinatario. Si hay un mensaje de error disponible para el tiempo de ejecución (obtenido de la interfaz IErrorInfo o del Err objeto en Visual Basic, o en algunos casos del sistema operativo), el mensaje se devuelve al autor de la llamada. Sin embargo, si el desarrollador de componentes COM no puede incluir un mensaje de error, el tiempo de ejecución devuelve el HRESULT de ocho dígitos en lugar de una cadena de mensaje. Tener un HRESULT permite al autor de la llamada determinar la causa de la excepción genérica.

Control de una excepción COMException

A continuación se indican algunas consideraciones para solucionar una COMException excepción.

Compruebe la ErrorCode propiedad Cuando el tiempo de ejecución encuentre un HRESULT desconocido y produzca una COMException excepción, la ErrorCode propiedad incluye el mensaje de error o, si un mensaje de error no está disponible, el valor HRESULT de ocho dígitos. El mensaje de error o el valor HRESULT pueden ayudarle a determinar la causa de la excepción.

Para obtener una lista de valores HRESULT comunes, consulte Valores HRESULT comunes.

Al pasar argumentos enlazados dinámicamente a métodos de objetos de Microsoft Office, se puede producir una excepción COMException cuando estos son objetos COM. El enlazador en tiempo de ejecución supone que tales llamadas al método implican un parámetro ByRef y que la propiedad que se pasa tiene un descriptor de acceso set . Si la propiedad no lo hace, .NET genera una MissingMethodException excepción (con un CORE_E_MISSINGMETHOD HRESULT ). Para solucionar este comportamiento, use objetos enlazados con antelación o pase una variable en lugar de una propiedad del objeto .

COM se usa para comunicarse entre Visual Studio y el proceso de hospedaje. Dado que se usa antes de que se ejecute el código, una llamada a CoInitializeSecurity hace que se produzca esta excepción. En algunos casos, la ejecución de Visual Studio como administrador puede resolver el problema. También puede deshabilitar el proceso de hospedaje.

Lanzar una excepción COMException

Aunque puede usar la clase COMException para devolver HRESULT específicos a clientes no administrados, lanzar una excepción específica de .NET es mejor que usar una excepción genérica. Tenga en cuenta que los clientes administrados, así como los no administrados, pueden utilizar su objeto .NET, y lanzar un HRESULT desde un entorno administrado es menos comprensible que lanzar una excepción.

Constructores

Nombre Description
COMException()

Inicializa una nueva instancia de la COMException clase con valores predeterminados.

COMException(SerializationInfo, StreamingContext)
Obsoletos.

Inicializa una nueva instancia de la COMException clase a partir de datos de serialización.

COMException(String, Exception)

Inicializa una nueva instancia de la COMException clase con un mensaje de error especificado y una referencia a la excepción interna que es la causa de esta excepción.

COMException(String, Int32)

Inicializa una nueva instancia de la COMException clase con un mensaje y código de error especificados.

COMException(String)

Inicializa una nueva instancia de la COMException clase con un mensaje especificado.

Propiedades

Nombre Description
Data

Obtiene una colección de pares clave-valor que proporcionan información adicional definida por el usuario sobre la excepción.

(Heredado de Exception)
ErrorCode

Obtiene el HRESULT del error.

(Heredado de ExternalException)
HelpLink

Obtiene o establece un vínculo al archivo de ayuda asociado a esta excepción.

(Heredado de Exception)
HResult

Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica.

(Heredado de Exception)
InnerException

Obtiene la Exception instancia que provocó la excepción actual.

(Heredado de Exception)
Message

Obtiene un mensaje que describe la excepción actual.

(Heredado de Exception)
Source

Obtiene o establece el nombre de la aplicación o el objeto que provoca el error.

(Heredado de Exception)
StackTrace

Obtiene una representación de cadena de los fotogramas inmediatos en la pila de llamadas.

(Heredado de Exception)
TargetSite

Obtiene el método que produce la excepción actual.

(Heredado de Exception)

Métodos

Nombre Description
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetBaseException()

Cuando se reemplaza en una clase derivada, devuelve la Exception causa principal de una o varias excepciones posteriores.

(Heredado de Exception)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetObjectData(SerializationInfo, StreamingContext)
Obsoletos.

Cuando se reemplaza en una clase derivada, establece con SerializationInfo información sobre la excepción.

(Heredado de Exception)
GetType()

Obtiene el tipo de tiempo de ejecución de la instancia actual.

(Heredado de Exception)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Convierte el contenido de la excepción en una cadena.

ToString()

Crea y devuelve una representación de cadena de la excepción actual.

(Heredado de Exception)

Eventos

Nombre Description
SerializeObjectState
Obsoletos.

Se produce cuando se serializa una excepción para crear un objeto de estado de excepción que contiene datos serializados sobre la excepción.

(Heredado de Exception)

Se aplica a

Consulte también