C# コードでのネイティブ例外の処理
C# では、アンマネージ ライブラリから発生する例外をキャッチできます。このような例外を処理するには、標準の try-catch ブロックで十分です。ただし、ネイティブ例外から特定のエラー情報にアクセスするには、Win32Exception クラスを使用できます。
Win32Exception クラスには、例外に関連付けられたネイティブ エラー コードを返す NativeErrorCode プロパティが用意されています。このプロパティを使用して、特定の処理を実行したり、カスタム エラー メッセージを表示したりできます。
たとえば、ネイティブ アプリケーションを使用してファイルを開こうとしているシナリオを考えてみましょう。以下のコードは、ネイティブ例外を含む潜在的な例外を処理する方法を示しています。
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 { process.StartInfo.FileName = filePath; process.StartInfo.Verb = "Open"; process.StartInfo.CreateNoWindow = true; process.Start(); } catch (Win32Exception e) { if (e.NativeErrorCode == ERROR_FILE_NOT_FOUND || e.NativeErrorCode == ERROR_ACCESS_DENIED || e.NativeErrorCode == ERROR_NO_APP_ASSOCIATED) { MessageBox.Show(this, e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } }
この例では、Win32Exception をキャッチし、NativeErrorCode プロパティをチェックします。エラー コードが指定された値のいずれかに一致する場合 (ファイルが見つからない、アクセスが拒否されたなど)、カスタム エラー メッセージが表示されます。
以上がC# でネイティブ例外を処理し、特定のエラー情報にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。