C# で例外フィルターと例外処理を使用する方法

WBOY
リリース: 2023-10-08 09:01:01
オリジナル
1145 人が閲覧しました

C# で例外フィルターと例外処理を使用する方法

C# で例外フィルターと例外処理を使用する方法には、特定のコード例が必要です。

例外とは、プログラムの実行中に発生するエラーまたは予期しない状況です。 C# では、例外はスローとキャッチによって処理されます。例外処理は、プログラムの正常な動作を保証するための重要な部分です。

C# では、例外フィルターと例外処理は、例外を処理する 2 つの一般的な方法です。例外フィルターを使用すると、例外をキャッチする前にフィルターをかけて処理できます。 when キーワードを使用して、例外フィルターの条件を指定します。以下に例を示します。

try
{
    // 可能抛出异常的代码块
    int a = 10;
    int b = 0;
    int result = a / b;
}
catch (Exception ex) when (ex is DivideByZeroException)
{
    // 异常过滤器,仅处理除零异常
    Console.WriteLine("除零异常:" + ex.Message);
}
catch (Exception ex)
{
    // 其他类型的异常
    Console.WriteLine("其他异常:" + ex.Message);
}
ログイン後にコピー

上記の例では、例外フィルターを使用してゼロ除算例外をキャッチして処理します。スローされた例外のタイプが DivideByZeroException の場合、最初の catch ブロック内のコードが実行されます。他のタイプの例外の場合は、2 番目の catch ブロック内のコードが実行されます。

例外フィルターは、true または false を返すブール式である必要があることに注意してください。 true が返された場合、例外がフィルター条件を満たしており、キャッチされて処理されることを意味します。 false が返された場合、例外は上位の呼び出しスタックにスローされ続けます。

もう 1 つの一般的な例外処理方法は、finally ブロックを使用することです。例外が発生したかどうかに関係なく、finally ブロック内のコードが実行されます。以下に例を示します。

FileStream file = null;
try
{
    file = new FileStream("file.txt", FileMode.Open);
    // 文件操作
}
catch (FileNotFoundException ex)
{
    Console.WriteLine("文件未找到:" + ex.Message);
}
finally
{
    // 无论是否出现异常,都会关闭文件流
    file?.Close();
}
ログイン後にコピー

上の例では、try ブロックでファイル ストリームを開いてから、ファイル操作を実行しました。 FileNotFoundException が発生すると、catch ブロック内のコードが実行されます。例外が発生しない場合、finally ブロック内のコードが実行されてファイル ストリームが閉じられます。

例外処理を使用すると、プログラムでエラーが発生したときに適切に処理し、回復することができます。例外フィルターと例外処理は、C# で例外を処理するためによく使用される 2 つの方法です。これらのテクニックを使用して、プログラムの堅牢性と安定性を向上させます。

上記のコード例が、C# での例外フィルターと例外処理の使用方法を理解するのに役立つことを願っています。実際のコーディング プロセスでは、特定のニーズや状況に応じて、適切な例外処理方法を選択して例外を処理できます。

以上がC# で例外フィルターと例外処理を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!