다음을 통해 공유


COMException 클래스

인식할 수 없는 HRESULT가 COM 메서드 호출에서 반환되면 예외가 throw됩니다.

네임스페이스: System.Runtime.InteropServices
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class COMException
    Inherits ExternalException
‘사용 방법
Dim instance As COMException
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class COMException : ExternalException
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class COMException : public ExternalException
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class COMException extends ExternalException
SerializableAttribute 
ComVisibleAttribute(true) 
public class COMException extends ExternalException

설명

공용 언어 런타임에서는 알려진 HRESULT를 .NET 예외로 변환하므로 COM 개체가 관리되는 클라이언트에 의미 있는 오류 정보를 반환할 수 있습니다. 또한 예외 매핑에 대한 HRESULT는 관리되지 않는 클라이언트에 특정 HRESULT를 반환합니다. 자세한 내용은 방법: HRESULT 및 예외 매핑을 참조하십시오.

런타임에 일반적이지 않은 HRESULT가 발생하면(일치하는 특정 예외가 없는 HRESULT) COMException 클래스의 인스턴스를 throw합니다. 이러한 다용도 예외는 모든 예외와 같은 멤버를 노출하고 피호출자가 반환한 HRESULT가 있는 ErrorCode 속성을 포함합니다. IErrorInfo 인터페이스, Visual Basic의 Err 개체 또는 운영 체제에서 얻은 오류 메시지를 런타임에 사용할 수 있을 경우에는 피호출자에게 메시지가 반환됩니다. 그러나 COM 구성 요소 개발자가 오류 메시지를 포함시키지 못한 경우에는 런타임에 메시지 문자열 대신 8자로 된 HRESULT가 반환됩니다. HRESULT를 사용하면 호출자가 일반 예외가 발생한 원인을 알 수 있습니다.

COMException 클래스를 사용하여 관리되지 않는 클래스에 특정 HRESULT를 반환할 수 있지만, 일반 예외를 사용하는 것보다 특정 .NET 예외를 throw하는 편이 낫습니다. 관리되는 클라이언트는 물론 관리되지 않는 클라이언트가 사용자의 .NET 개체를 사용할 수 있다고 가정할 경우, 관리되는 호출자에게 HRESULT를 throw하는 것이 예외를 throw하는 것보다 덜 광범위하기 때문에 원인을 빨리 파악할 수 있습니다.

상속 계층 구조

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

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0에서 지원

참고 항목

참조

COMException 멤버
System.Runtime.InteropServices 네임스페이스
Exception

기타 리소스

예외 처리 및 Throw