C# コードでのネイティブ例外のキャッチ
C# プログラミングでは、「ネイティブ」と呼ばれることが多いアンマネージ ライブラリから発生する例外をキャッチできます。例外。」これらの例外は、基になるネイティブ コードでマネージド コード内で処理できないエラーが発生した場合に発生します。
ネイティブ例外をキャッチする方法
ネイティブ例外をキャッチするには、次のことができます。 Win32Exception クラスを使用します。このクラスは、アンマネージ ライブラリによって生成されたエラー コードを含む NativeErrorCode プロパティを公開します。このプロパティを使用すると、例外を適切に処理できます。
使用例
次の例は、ネイティブ例外をキャッチし、Win32Exception クラスを使用して処理する方法を示しています。
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 { // Calls native application registered for the file type // This may throw a native exception 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); } } }
この例では、OpenFile() メソッドはネイティブ アプリケーションを使用してファイルを開こうとします。ファイルが見つからない場合、アクセスが拒否された場合、またはそのファイルの種類に関連付けられたアプリケーションがない場合は、ネイティブ例外がスローされます。 catch ブロックは Win32Exception クラスを使用して例外をインターセプトし、エラーの詳細を示すメッセージ ボックスを表示することで適切に処理します。
注: try...catch ブロックはネイティブ例外をキャッチします。標準の try...catch メカニズムは、マネージ例外とネイティブ例外の両方を処理するのに十分です。
以上がC# でネイティブ例外をキャッチして処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。