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) 值:SharedState。HostProtectionAttribute 不影响桌面应用程序(这些应用程序通常通过双击图标、键入命令或在浏览器中输入 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