C# で複数の例外をキャッチする

Muhammad Maisam Abbas 2023年1月30日 2021年5月9日
  1. C# の Exception クラスで複数の例外をキャッチする
  2. C# の if ステートメントで複数の例外をキャッチする
C# で複数の例外をキャッチする

このチュートリアルでは、C# で複数の例外をキャッチする方法について説明します。

C# の Exception クラスで複数の例外をキャッチする

Exception クラスは、C# の一般的な例外を表すために使用されます。try...catch 句内の Exception クラスを使用して、コードによってスローされたあらゆるタイプの例外をキャッチできます。次のサンプルコードを参照してください。

using System;

namespace convert_int_to_bool
{
    class Program
    {
        static void Main(string[] args)
        {
            try{
            int i = 1;
            bool b = Convert.ToBoolean(i);
            Console.WriteLine(b);   
            }
            catch(Exception e){
                Console.WriteLine("An Exception Occured");
            }
        }
    }
}

出力:

True

上記のコードでは、C# の Exception クラスを使用して、コードによってスローされたあらゆるタイプの例外をキャッチします。このアプローチでは、問題とそのトラブルシューティング方法に関する十分な情報が得られないため、通常はお勧めしません。この一般的な例外タイプではなく、特定の例外タイプを常に優先する必要があります。

C# の if ステートメントで複数の例外をキャッチする

特定の例外を使用するには、catch 句の形式で多くのコードを記述する必要があります。if ステートメントを使用して、C# の 1つの catch 句で複数のタイプの例外をキャッチできます。次のサンプルコードを参照してください。

using System;

namespace convert_int_to_bool
{
    class Program
    {
        static void Main(string[] args)
        {
            try{
            int i = 1;
            bool b = Convert.ToBoolean(i);
            Console.WriteLine(b);   
            }
            catch(Exception e){
                if (ex is FormatException || ex is OverflowException){
        			Console.WriteLine("Format or Overflow Exception occured");
    			}
            }
        }
    }
}

出力:

True

上記のコードでは、C# の if ステートメントを使用して、1つの catch 句で FormatExceptionOverflowException の両方の例外をキャッチします。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp Exception