C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のDivideByZeroExceptionクラスとは?ゼロ除算例外の基本と使い方を解説

C#における例外は、すべてクラスとして表現されます。C#の例外クラスは、主にSystem.Exceptionクラスから直接または間接的に派生しており、代表的な派生クラスとしてはSystem.ApplicationExceptionSystem.SystemExceptionなどが挙げられます。

System.DivideByZeroExceptionは、整数値をゼロで除算しようとした際に発生するエラーを処理するための例外クラスです。この例外はSystem.ArithmeticExceptionの派生クラスであり、プログラムの実行中にゼロ除算が行われると、共通言語ランタイム(CLR)によって自動的にスローされます。

なお、浮動小数点数(floatdouble)の除算ではこの例外は発生せず、結果としてInfinityNaNが返される点に注意が必要です。DivideByZeroExceptionがスローされるのは、整数型同士の除算の場合のみです。

DivideByZeroExceptionの使用例

以下のコードは、try-catch-finallyブロックを使用して、ゼロ除算によって発生した例外を捕捉する基本的な例です。

using System;
namespace ErrorHandlingApplication {
    class DivNumbers {
        int result;
        DivNumbers() {
            result = 0;
        }
        public void division(int num1, int num2) {
            try {
                result = num1 / num2;
            } catch (DivideByZeroException e) {
                Console.WriteLine("Exception caught: {0}", e);
            } finally {
                Console.WriteLine("Result: {0}", result);
            }
        }
        static void Main(string[] args) {
            DivNumbers d = new DivNumbers();
            d.division(25, 0);
            Console.ReadKey();
        }
    }
}

実行結果

Exception caught: System.DivideByZeroException: Attempted to divide by zero.
at ErrorHandlingApplication.DivNumbers.division (System.Int32 num1, System.Int32 num2) [0x00000] in <a9b37148b4814c1a849bf4ee94fbe889>:0
Result: 0

コードのポイント

  • tryブロック: 除算処理num1 / num2を実行します。ここでnum2が0のため、DivideByZeroExceptionがスローされます。
  • catchブロック: スローされた例外を受け取り、例外の詳細情報をコンソールに出力します。
  • finallyブロック: 例外の発生有無にかかわらず必ず実行されるため、変数resultの値が出力されます。

このようにtry-catch構文で例外を適切に捕捉することで、ゼロ除算によるプログラムの異常終了を防ぎ、安定したアプリケーションを構築できます。

  1. C#のConsoleクラスとは?主要プロパティの使い方を実例付きで解説

    C#のConsoleクラスは、コンソールアプリケーションにおける標準入力・標準出力・標準エラー出力の各ストリームを表すクラスです。テキストの表示や入力の読み取りだけでなく、文字色や背景色の変更、カーソル位置やサイズの制御など、コンソール操作に関するさまざまな機能が提供されています。ここでは、Consoleクラスの代表的なプロパティの使い方を、サンプルコードと実行結果とあわせて解説します。Console.CursorLeftプロパティコンソール上のカーソル位置(左端から数えた列位置)を変更するには、Console.CursorLeftプロパティを使用します。サンプルコードusing System

  2. C#のクラスとは?基本構文からサンプルコードまで徹底解説

    C#におけるクラスとは、データ型の「設計図(ブループリント)」に相当するものです。クラスをもとに生成された実体をオブジェクトと呼び、オブジェクトはクラスのインスタンスであるといえます。また、クラスを構成するメソッドや変数は、まとめてクラスのメンバーと呼ばれます。クラスの一般的な定義形式C#でクラスを定義する際の一般的な書式は以下のとおりです。<アクセス修飾子> class クラス名 {     // メンバー変数     <アクセス修飾子> <データ型> 変数1;  &