ホームページ  >  記事  >  バックエンド開発  >  C# のカスタム例外

C# のカスタム例外

王林
王林オリジナル
2024-09-03 15:21:321099ブラウズ

私たちが取り組んでいるアプリケーションでは、ビジネス ルールの違反が発生すると、カスタム例外を発生させて状況を処理します。カスタム例外は、アプリケーションの固有のシナリオに対処するために特別に作成された例外です。カスタム例外を作成するには、C# の ApplicationException クラスまたは Exception クラスから新しいクラスを派生します。 ApplicationException クラスは、バージョン .NET v1.0 以降の .NET Framework に含まれており、C# のカスタム例外クラスの基本クラスとして機能するように設計されています。

C# でのカスタム例外の仕組み

  • 例外は、アプリケーションの実行中に発生するタイプのエラーを処理します。エラーとは、アプリケーションの実行中に発生する予期しない問題を意味します。それどころか、いくつかの理由により、アプリケーションの実行中に例外が発生することが予想されます。
  • 例外処理は、アプリケーションの実行中に発生すると予想される例外を処理するためにアプリケーションによって使用されます。 C# での例外の処理は、try、catch、finally、throw の 2 つのキーワードを使用して行われます。
  • クラスは C# の例外を表します。 C# のこれらの例外クラスは System.直接的または間接的な例外クラス。
  • Application Exception クラスまたは Exception クラスは、スローできるカスタム例外を作成するために使用されます。
  • カスタム例外の作成は、これらの例外をキャッチでき、別の方法で処理できる場合にのみ役立ちます。
  • アプリケーションでエラーが発生しました。C# でカスタム例外を作成している場合は、エラー監視ツールを使用してエラーのログを監視できます。

言及されている例を以下に示します:

例 #1

プログラム内でのカスタム例外の使用を示す C# プログラム。

コード:

using System;
//a namespace called user defined is defined
namespace UserDefined
{
//a class called test weather is defined
class Testweather
{
//main method is called
static void Main(string[] args)
{
//an instance of the class temperat is defined
Temperat tem = new Temperat();
try
{
//the show method of temperat class is called using the instance of the temperat class
tem.show();
}
catch(WeatheriscoldException e)
{
Console.WriteLine("The weather is cold Exception: {0}", e.Message);
}
Console.ReadKey();
}
}
}
//a custom exception class called Weather is cold Exception class is created which is thrown if the weather is cold
public class WeatheriscoldException: Exception
{
public WeatheriscoldException(string message): base(message)
{
}
}
//a class called temperat is defined
public class Temperat
{
//a variable called temp is defined and assigned to zero
int temp = 0;
//a method called show is defined
public void show()
{
//the temperature is checked to determine the weather
if(temp == 0)
{
throw (new WeatheriscoldException("The temperature is found to be zero and hence the weather is cold"));
}
else
{
Console.WriteLine("The Temperature is: {0}", temp);
}
}
}

出力:

C# のカスタム例外

説明:

  • 上記のプログラムでは、ユーザー定義という名前空間が定義されています。次に、テスト天気というクラスが定義されます。次に、main メソッドが呼び出されます。次に、クラス temperat のインスタンスが定義されます。次に、temperat クラスのインスタンスを使用して、temperat クラスの show メソッドが呼び出されます。
  • 次に、Weather is cold Exception クラスというカスタム例外クラスが作成され、天気が寒い場合にスローされます。次に、temperat というクラスが定義されます。次に、temp という変数が定義され、0 に割り当てられます。次に、show というメソッドが定義されます。次に、気温をチェックして天気を判断します。

例 #2

プログラム内でのカスタム例外の使用を示す C# プログラム。

コード:

using System;
//a namespace called exception handling is defined
namespace ExceptionHandling
{
//The custom exception class called odd num exception class is created by inheriting the exception class
public class OddNumException : Exception
{
//The property message is being overridden here
public override string Message
{
get
{
return "There cannot be an odd divisor";
}
}
}
//a class called check is defined
class check
{
//main method is called
static void Main(string[] args)
{
//three integer variables are defined
int a, b, c;
Console.WriteLine("Please enter two numbers and type of the numbers must be integer:");
a = int.Parse(Console.ReadLine());
b = int.Parse(Console.ReadLine());
try
{
//checking if the divisor is an odd number or an even number
if (b % 2 > 0)
{
//exception is thrown if the divisor is an odd number
throw new OddNumException();
}
c = a / b;
Console.WriteLine(c);
}
catch (OddNumException two)
{
Console.WriteLine(two.Message);
}
Console.WriteLine("The program ends here");
Console.ReadKey();
}
}
}

出力:

C# のカスタム例外

説明:

  • 上記のプログラムでは、例外処理という名前空間が定義されています。そして、例外クラスを継承して奇数例外クラスと呼ばれるこのクラスを作成します。その後、プロパティ メッセージがそこでオーバーライドされます。次に、check というクラスが定義されます。次に、main メソッドが呼び出されます。次に、2 つの入力整数変数を受け取るために 3 つの整数変数が定義され、もう 1 つの整数変数は整数出力を格納するために使用されます。
  • 次に、parse() メソッドを使用して 2 つの整数変数が解析されます。次に、2 番目の整数変数または除数が奇数か偶数かを確認します。これは、除数を 2 で割った余りが 0 より大きいか、0 に等しいかを確認することによって行われます。その後、除数が奇数の場合は例外がスローされます。

メリット

以下に挙げる利点を示します:

  • C# でのカスタム例外タイプのカスタム処理は、コードを呼び出すことで実行できます。
  • カスタム例外タイプに関する監視は、C# のカスタム例外処理を使用してカスタム化できます。

以上がC# のカスタム例外の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。