呼叫非託管程式庫時,可能會遇到本機異常。這些異常源自於底層程式碼,與 .NET Framework 拋出的例外狀況不同。
您確實可以使用 Win32Exception 類別來擷取 C# 程式碼中的本機異常。此類別透過 NativeErrorCode 屬性提供有關異常的附加信息,包括其本機錯誤代碼。
要有效處理本機異常,您可以使用 try...catch區塊如下所示:
const int ERROR_FILE_NOT_FOUND = 2; const int ERROR_ACCESS_DENIED = 5; const int ERROR_NO_APP_ASSOCIATED = 1155; void OpenFile(string filePath) { Process process = new Process(); try { // Attempt to open the file using a native application process.StartInfo.FileName = filePath; process.StartInfo.Verb = "Open"; process.StartInfo.CreateNoWindow = true; process.Start(); } catch (Win32Exception e) { // Handle specific native error codes switch (e.NativeErrorCode) { case ERROR_FILE_NOT_FOUND: case ERROR_ACCESS_DENIED: case ERROR_NO_APP_ASSOCIATED: MessageBox.Show(this, e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); break; } } }
此範例在嘗試開啟檔案時處理常見的本機錯誤程式碼,並向
對於全面的異常處理,查閱您正在使用的特定非託管庫的文檔以確定可能發生的潛在本機錯誤至關重要。
以上是與非託管庫互動時如何捕獲和處理 C# 中的本機異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!