Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase COMException

 

Publicado: julio de 2016

Excepción que se produce cuando una llamada al método COM devuelve un resultado HRESULT desconocido.

Espacio de nombres:   System.Runtime.InteropServices
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.Exception
    System.SystemException
      System.Runtime.InteropServices.ExternalException
        System.Runtime.InteropServices.COMException
          System.DirectoryServices.DirectoryServicesCOMException

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class COMException : ExternalException

NombreDescripción
System_CAPS_pubmethodCOMException()

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

System_CAPS_protmethodCOMException(SerializationInfo, StreamingContext)

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

System_CAPS_pubmethodCOMException(String)

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

System_CAPS_pubmethodCOMException(String, Exception)

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

System_CAPS_pubmethodCOMException(String, Int32)

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

NombreDescripción
System_CAPS_pubpropertyData

Obtiene una colección de pares clave-valor que proporcionan más información definida por el usuario sobre la excepción.(Heredado de Exception).

System_CAPS_pubpropertyErrorCode

Obtiene el elemento HRESULT del error.(Heredado de ExternalException).

System_CAPS_pubpropertyHelpLink

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

System_CAPS_pubpropertyHResult

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

System_CAPS_pubpropertyInnerException

Obtiene la instancia Exception que produjo la excepción actual.(Heredado de Exception).

System_CAPS_pubpropertyMessage

Obtiene un mensaje que describe la excepción actual.(Heredado de Exception).

System_CAPS_pubpropertySource

Devuelve o establece el nombre de la aplicación o del objeto que generó el error.(Heredado de Exception).

System_CAPS_pubpropertyStackTrace

Obtiene una representación de cadena de los marcos inmediatos en la pila de llamadas.(Heredado de Exception).

System_CAPS_pubpropertyTargetSite

Obtiene el método que produjo la excepción actual.(Heredado de Exception).

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de que sea reclamado por la recolección de elementos no utilizados.(Heredado de Object).

System_CAPS_pubmethodGetBaseException()

Cuando se invalida en una clase derivada, devuelve la clase Exception que representa la causa principal de una o más excepciones posteriores.(Heredado de Exception).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

Cuando se invalida en una clase derivada, establece SerializationInfo con información sobre la excepción.(Heredado de Exception).

System_CAPS_pubmethodGetType()

Obtiene el tipo en tiempo de ejecución de la instancia actual.(Heredado de Exception).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodToString()

Convierte el contenido de la excepción en una cadena.(Invalida ExternalException.ToString()).

NombreDescripción
System_CAPS_proteventSerializeObjectState

Ocurre cuando una excepción se serializa para crear un objeto de estado de excepción que contenga datos serializados sobre la excepción.(Heredado de Exception).

Common language runtime transforma los resultados conocidos de HRESULT en excepciones de .NET Framework, lo que permite objetos COM devuelvan información de errores significativa a los clientes administrados. El resultado HRESULT de una asignación de excepción también funciona en la otra dirección ya que devuelve HRESULT específicos a clientes no administrados. Para obtener detalles de asignación, consulte How to: Map HRESULTs and Exceptions.

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

Los siguientes son algunas consideraciones para la solución de problemas de un COMException excepción.

Compruebe el ErrorCode propiedad

Cuando el tiempo de ejecución encuentra un resultado HRESULT desconocido y produce una COMException excepción, el ErrorCode esta 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 puede ayudarle a determinar la causa de la excepción.

Para obtener una lista de valores HRESULT, vea Common HRESULT Values.

Argumentos de tiempo de ejecución y objetos de Microsoft Office

Al pasar argumentos de tiempo de ejecución a métodos de objetos de Microsoft Office, un COMException excepción puede producirse cuando los objetos 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 es así, .NET Framework genera un MissingMethodException excepción (con un CORE_E_MISSINGMETHOD HRESULT). Para evitar este comportamiento, utilice los objetos enlazados en tiempo de compilación o pase una variable en lugar de una propiedad del objeto.

Visual Studio y el proceso de hospedaje

COM permite la comunicación entre Visual Studio y la hosting process. Puesto que se utiliza antes de la ejecución de código, una llamada a CoInitializeSecurity hace que se produzca esta excepción.

En algunos casos, cuando se ejecuta Visual Studio como administrador puede resolver el problema. You can also disable the hosting process.

Aunque puede usar el COMException clase para devolver valores HRESULT específicos a clientes no administrados, iniciar una excepción específica de .NET Framework es mejor que el uso de una excepción genérica. Tenga en cuenta que los clientes administrados como los clientes no administrados pueden utilizar el objeto de .NET Framework, y lanzar un valor HRESULT a un llamador administrado es menos comprensible que producir una excepción.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: