HOWTO · Csharp
C# で複数の例外をキャッチする
C# で複数の例外をキャッチするために使用できる 2つの主要なメソッド、Exception クラスと catch 句内の if ステートメントがあります。
このページの内容
このチュートリアルでは、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 句で FormatException と OverflowException の両方の例外をキャッチします。