Freigeben über


Win32Exception-Klasse

Löst eine Ausnahme für einen Win32-Fehlercode aus.

Namespace: System.ComponentModel
Assembly: System (in system.dll)

Syntax

'Declaration
<SerializableAttribute> _
Public Class Win32Exception
    Inherits ExternalException
    Implements ISerializable
'Usage
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

Hinweise

Win32-Fehlercodes werden beim Anzeigen aus ihren numerischen Darstellungen in eine Systemmeldung übersetzt. Verwenden Sie die NativeErrorCode, um auf die numerische Darstellung des Fehlercodes zuzugreifen, der dieser Ausnahme zugeordnet ist. Weitere Informationen zu den Fehlercodes finden Sie unter "Win32 Error Codes" in der Platform SDK-Dokumentation unter https://www.microsoft.com/germany/msdn.

Hinweis

Das auf diese Klasse angewendete HostProtectionAttribute-Attribut besitzt den Resources-Eigenschaftenwert SharedState. Das HostProtectionAttribute hat keine Auswirkungen auf Desktopanwendungen (die normalerweise durch Doppelklicken auf ein Symbol, Eingeben eines Befehls oder eines URL in einem Browser gestartet werden). Weitere Informationen finden Sie unter der HostProtectionAttribute-Klasse oder unter SQL Server-Programmierung und Hostschutzattribute.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie eine Win32-Ausnahme abgefangen und deren Inhalt interpretiert wird. Im Beispiel wird versucht, eine nicht vorhandene ausführbare Datei zu starten, wodurch eine Win32-Ausnahme ausgelöst wird. Beim Abfangen der Ausnahme ruft das Beispiel die entsprechende Fehlermeldung, den Code und den Ursprung der Ausnahme ab.

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 );
}

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

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

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Win32Exception-Member
System.ComponentModel-Namespace