다음을 통해 공유


Win32Exception 클래스

Win32 오류 코드에 대한 예외를 throw합니다.

네임스페이스: System.ComponentModel
어셈블리: System(system.dll)

구문

‘선언
<SerializableAttribute> _
Public Class Win32Exception
    Inherits ExternalException
    Implements ISerializable
‘사용 방법
Dim instance As Win32Exception
[SerializableAttribute] 
public class Win32Exception : ExternalException, ISerializable
[SerializableAttribute] 
public ref class Win32Exception : public ExternalException, ISerializable
/** @attribute SerializableAttribute() */ 
public class Win32Exception extends ExternalException implements ISerializable
SerializableAttribute 
public class Win32Exception extends ExternalException implements ISerializable

설명

Win32 오류 코드는 표시될 때 숫자 표현에서 시스템 메시지로 번역됩니다. 이 예외와 관련된 오류 코드의 숫자 표현에 액세스하려면 NativeErrorCode를 사용합니다. 오류 코드에 대한 자세한 내용은 https://www.microsoft.com/korea/msdn의 Platform SDK 설명서에서 "Win32 Error Codes"를 참조하십시오.

참고

이 클래스에 적용되는 HostProtectionAttribute 특성의 Resources 속성 값은 SharedState입니다. HostProtectionAttribute는 대개 아이콘을 두 번 클릭하거나, 명령을 입력하거나, 브라우저에서 URL을 입력하여 시작되는 데스크톱 응용 프로그램에 영향을 미치지 않습니다. 자세한 내용은 HostProtectionAttribute 클래스나 SQL Server 프로그래밍 및 호스트 보호 특성을 참조하십시오.

예제

다음 코드 예제에서는 Win32 예외를 catch하고 해당 내용을 해석하는 방법을 보여 줍니다. 이 예제에서는 존재하지 않는 실행 파일을 시작하여 Win32 예외를 발생시키려고 합니다. 또한 이 예제에서는 예외를 catch할 때 예외와 관련된 오류 메시지, 코드 및 예외가 발생한 위치를 페치합니다.

Try
    Dim myProc As New System.Diagnostics.Process()
    myProc.StartInfo.FileName = "c:\nonexist.exe"  'Attempting to start a non-existing executable
    myProc.Start()    'Start the application and assign it to the process component.    

Catch w As System.ComponentModel.Win32Exception
    Console.WriteLine(w.Message)
    Console.WriteLine(w.ErrorCode.ToString())
    Console.WriteLine(w.NativeErrorCode.ToString())
    Console.WriteLine(w.StackTrace)
    Console.WriteLine(w.Source)
    Dim e As New Exception()
    e = w.GetBaseException()
    Console.WriteLine(e.Message)
End Try
try {
System.Diagnostics.Process myProc = new System.Diagnostics.Process();
myProc.StartInfo.FileName = "c:\nonexist.exe";  //Attempting to start a non-existing executable
myProc.Start();    //Start the application and assign it to the process component.    
}
  catch(Win32Exception w) {
Console.WriteLine(w.Message);
Console.WriteLine(w.ErrorCode.ToString());
Console.WriteLine(w.NativeErrorCode.ToString());
Console.WriteLine(w.StackTrace);
Console.WriteLine(w.Source);
Exception e=w.GetBaseException();
Console.WriteLine(e.Message);
 }
try
{
   System::Diagnostics::Process^ myProc = gcnew System::Diagnostics::Process;
   //Attempting to start a non-existing executable
   myProc->StartInfo->FileName = "c:\nonexist.exe";
   //Start the application and assign it to the process component.
   myProc->Start();
}
catch ( Win32Exception^ w ) 
{
   Console::WriteLine( w->Message );
   Console::WriteLine( w->ErrorCode );
   Console::WriteLine( w->NativeErrorCode );
   Console::WriteLine( w->StackTrace );
   Console::WriteLine( w->Source );
   Exception^ e = w->GetBaseException();
   Console::WriteLine( e->Message );
}

상속 계층 구조

System.Object
   System.Exception
     System.SystemException
       System.Runtime.InteropServices.ExternalException
        System.ComponentModel.Win32Exception
           System.Net.HttpListenerException
           System.Net.NetworkInformation.NetworkInformationException
           System.Net.Sockets.SocketException

스레드로부터의 안전성

이 형식의 모든 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, 1.0에서 지원

참고 항목

참조

Win32Exception 멤버
System.ComponentModel 네임스페이스