COMException COMException COMException COMException Class

Definición

Excepción que se produce cuando una llamada al método COM devuelve un resultado HRESULT desconocido.The exception that is thrown when an unrecognized HRESULT is returned from a COM method call.

public ref class COMException : System::Runtime::InteropServices::ExternalException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class COMException : System.Runtime.InteropServices.ExternalException
type COMException = class
    inherit ExternalException
Public Class COMException
Inherits ExternalException
Herencia
Derivado
Atributos

Comentarios

El Common Language Runtime transforma los resultados conocidos de HRESULT en .NET Framework excepciones, lo que permite que los objetos COM devuelvan información de error significativa a los clientes administrados.The common language runtime transforms well-known HRESULTs to .NET Framework exceptions, enabling COM objects to return meaningful error information to managed clients. La asignación de HRESULT a excepción también funciona en la otra dirección devolviendo Valores HRESULT específicos a clientes no administrados.The HRESULT to exception mapping also works in the other direction by returning specific HRESULTs to unmanaged clients. Para obtener información detallada sobre la asignación, consulte Cómo: Asignar resultados HRESULT y excepciones.For mapping details, see How to: Map HRESULTs and Exceptions.

Cuando el tiempo de ejecución encuentra un valor HRESULT desconocido (un valor HRESULT que carece de una excepción específica correspondiente), produce una instancia de la COMException clase.When the runtime encounters an unfamiliar HRESULT (an HRESULT that lacks a specific, corresponding exception), it throws an instance of the COMException class. Esta excepción para todos los propósitos expone los mismos miembros como cualquier excepción y hereda una propiedad pública ErrorCode que contiene el HRESULT devuelto por el destinatario.This all-purpose exception exposes the same members as any exception, and inherits a public ErrorCode property that contains the HRESULT returned by the callee. Si hay un mensaje de error disponible para el tiempo de ejecución ( Obtenido de la interfaz Err IErrorInfo o del objeto en Visual Basic, o en algunos casos del sistema operativo), el mensaje se devuelve al autor de la llamada.If an error message is available to the runtime (obtained from the IErrorInfo interface or the Err object in Visual Basic, or in some cases from the operating system), the message is returned to the caller. 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.However, if the COM component developer fails to include an error message, the runtime returns the eight-digit HRESULT in place of a message string. Tener un valor HRESULT permite al llamador determinar la causa de la excepción genérica.Having an HRESULT allows the caller to determine the cause of the generic exception.

Controlar una excepción COMExceptionHandling a COMException exception

A continuación se indican algunas consideraciones para solucionar problemas COMException de una excepción.The following are some considerations for troubleshooting a COMException exception.

Comprobar la ErrorCode propiedadCheck the ErrorCode property
Cuando el tiempo de ejecución encuentra un HRESULT desconocido y produce 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.When the runtime encounters an unfamiliar HRESULT and throws a COMException exception, the ErrorCode property includes either the error message or, if an error message is unavailable, the eight-digit HRESULT value. El mensaje de error o el valor HRESULT pueden ayudarle a determinar la causa de la excepción.The error message or the HRESULT value can help you determine the cause of the exception.

Para obtener una lista de Valores HRESULT, vea Valores HRESULT comunes.For a list of HRESULT values, see Common HRESULT Values.

Argumentos enlazados en tiempo de ejecución y objetos Microsoft OfficeLate-bound arguments and Microsoft Office objects
Al pasar argumentos enlazados en tiempo de ejecución a métodos de Microsoft Office COMException objetos, se puede producir una excepción cuando los objetos son objetos com.When passing late-bound arguments to methods of Microsoft Office objects, a COMException exception may be thrown when the objects are COM objects. 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 .The late binder assumes that such method calls involve a ByRef parameter and that the property you pass has a set accessor. Si la propiedad no es, el .NET Framework genera una MissingMethodException excepción (con un CORE_E_MISSINGMETHOD valor HRESULT).If the property does not, the .NET Framework generates a MissingMethodException exception (with a 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.To work around this behavior, use early-bound objects or pass a variable instead of a property of the object.

Visual Studio y el proceso de hospedajeVisual Studio and the hosting process
COM se usa para la comunicación entre Visual Studio y el proceso de hospedaje.COM is used to communicate between Visual Studio and the hosting process. Dado que se utiliza antes de que se ejecute el código, una llamada a CoInitializeSecurity hace que se produzca esta excepción.Because it is used before code runs, a call to CoInitializeSecurity causes this exception to be thrown.

En algunos casos, la ejecución de Visual Studio como administrador puede resolver el problema.In some cases, running Visual Studio as Administrator may resolve the issue. También puede deshabilitar el proceso de hospedaje.You can also disable the hosting process.

Producir una excepción COMExceptionThrowing a COMException exception

Aunque puede usar la COMException clase para devolver valores HRESULT específicos a clientes no administrados, producir una excepción de .NET Framework específica es mejor que usar una excepción genérica.Although you can use the COMException class to return specific HRESULTs to unmanaged clients, throwing a specific .NET Framework exception is better than using a generic exception. Tenga en cuenta que los clientes administrados, así como los clientes no administrados pueden usar el .NET Framework objeto y producir un valor HRESULT en un llamador administrado es menos comprensible que producir una excepción.Consider that managed clients as well as unmanaged clients can use your .NET Framework object, and throwing an HRESULT to a managed caller is less comprehensible than throwing an exception.

Constructores

COMException() COMException() COMException() COMException()

Inicializa una nueva instancia de la clase COMException con valores predeterminados.Initializes a new instance of the COMException class with default values.

COMException(SerializationInfo, StreamingContext) COMException(SerializationInfo, StreamingContext) COMException(SerializationInfo, StreamingContext) COMException(SerializationInfo, StreamingContext)

Inicializa una nueva instancia de la clase COMException a partir de los datos de serialización.Initializes a new instance of the COMException class from serialization data.

COMException(String) COMException(String) COMException(String) COMException(String)

Inicializa una nueva instancia de la clase COMException con el mensaje especificado.Initializes a new instance of the COMException class with a specified message.

COMException(String, Exception) COMException(String, Exception) COMException(String, Exception) COMException(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.Initializes a new instance of the COMException class with a specified error message and a reference to the inner exception that is the cause of this exception.

COMException(String, Int32) COMException(String, Int32) COMException(String, Int32) COMException(String, Int32)

Inicializa una nueva instancia de la clase COMException con un mensaje y un código de error especificados.Initializes a new instance of the COMException class with a specified message and error code.

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

Cuando se reemplaza en una clase derivada, devuelve la clase Exception que representa la causa principal de una o más excepciones posteriores.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Cuando se reemplaza en una clase derivada, establece SerializationInfo con información sobre la excepción.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Inherited from Exception)
GetType() GetType() GetType() GetType()

Obtiene el tipo de tiempo de ejecución de la instancia actual.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Convierte el contenido de la excepción en una cadena.Converts the contents of the exception to a string.

Propiedades

Data Data Data Data

Obtiene una colección de pares clave-valor que proporcionan más información definida por el usuario sobre la excepción.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
ErrorCode ErrorCode ErrorCode ErrorCode

Obtiene el elemento HRESULT del error.Gets the HRESULT of the error.

(Inherited from ExternalException)
HelpLink HelpLink HelpLink HelpLink

Obtiene o establece un vínculo al archivo de ayuda asociado a esta excepción.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Obtiene la instancia Exception que produjo la excepción actual.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

Obtiene un mensaje que describe la excepción actual.Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

Devuelve o establece el nombre de la aplicación o del objeto que generó el error.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Obtiene una representación de cadena de los marcos inmediatos en la pila de llamadas.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Obtiene el método que produjo la excepción actual.Gets the method that throws the current exception.

(Inherited from Exception)

Eventos

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

Ocurre cuando una excepción se serializa para crear un objeto de estado de excepción que contenga datos serializados sobre la excepción.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

Se aplica a

Consulte también: