ホームページ > バックエンド開発 > C++ > C# でネイティブ例外を処理し、特定のエラー情報にアクセスするにはどうすればよいですか?

C# でネイティブ例外を処理し、特定のエラー情報にアクセスするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-30 12:51:10
オリジナル
898 人が閲覧しました

How Can I Handle Native Exceptions and Access Specific Error Information in C#?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート