Win32Exception 类

针对 Win32 错误代码引发异常。

**命名空间:**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 来访问与该异常关联的错误代码的数值表示形式。有关错误代码的更多信息,请参见 Platform SDK 文档中的“Win32 Error Codes”(Win32 错误代码),其网址是 https://www.microsoft.com/china/msdn

提示

应用于此类的 HostProtectionAttribute 属性 (Attribute) 具有以下 Resources 属性 (Property) 值:SharedStateHostProtectionAttribute 不影响桌面应用程序(这些应用程序通常通过双击图标、键入命令或在浏览器中输入 URL 来启动)。有关更多信息,请参见 HostProtectionAttribute 类或 SQL Server 编程和宿主保护属性

示例

下面的代码示例演示如何捕获 Win32 异常并解释其内容。该示例尝试启动不存在的可执行文件,这会导致引发 Win32 异常。当捕捉到此异常时,该示例获取各个错误信息、代码以及此异常的原因。

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

线程安全

此类型的任何公共静态(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 命名空间