ThrowExceptionForHR + GetHRForLastWin32Error 与 Win32Exception
ThrowExceptionForHR + GetHRForLastWin32Error vs Win32Exception
这些调用是否等价?
Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
throw new Win32Exception();
它们不等价。
Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error())
引发 COM 异常。这可能是 System.Runtime.InteropServices.COMException
或适用于 Win32 错误代码的异常。
throw new Win32Exception()
引发 Win32 异常,System.ComponentModel.Win32Exception
。
这些调用是否等价?
Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
throw new Win32Exception();
它们不等价。
Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error())
引发 COM 异常。这可能是System.Runtime.InteropServices.COMException
或适用于 Win32 错误代码的异常。throw new Win32Exception()
引发 Win32 异常,System.ComponentModel.Win32Exception
。