アンマネージ ライブラリを呼び出すと、ネイティブ例外が発生する可能性があります。これらの例外は基になるコードから発生し、.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; } } }
この例では、ファイルを開こうとしたときに一般的なネイティブ エラー コードを処理し、適切なエラー メッセージをファイルに表示します。 user.
包括的な例外処理については、使用している特定のアンマネージ ライブラリのドキュメントを参照して、発生する可能性のある潜在的なネイティブ エラーを判断することが重要です。
以上がアンマネージ ライブラリを操作するときに C# でネイティブ例外をキャッチして処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。