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

C#での例外


例外は、プログラムの実行中に発生する問題です。 C#例外は、ゼロ除算の試行など、プログラムの実行中に発生する例外的な状況への応答です。

例外は、プログラムのある部分から別の部分に制御を移す方法を提供します。 C#例外処理は、4つのキーワードに基づいて構築されています-

  • 試してください − tryブロックは、特定の例外がアクティブ化されているコードのブロックを識別します。その後に1つ以上のキャッチブロックが続きます。

  • キャッチ −プログラムは、問題を処理したいプログラム内の場所で例外ハンドラーを使用して例外をキャッチします。 catchキーワードは、例外のキャッチを示します。

  • 最後に − finallyブロックは、例外がスローされるかどうかに関係なく、特定のステートメントのセットを実行するために使用されます。たとえば、ファイルを開く場合、例外が発生したかどうかに関係なく、ファイルを閉じる必要があります。

  • 投げる −問題が発生すると、プログラムは例外をスローします。これは、throwキーワードを使用して行われます。

C#の例外は、クラスで表されます。 C#の例外クラスは、主にシステムから直接または間接的に派生します。例外クラス。システムから派生した例外クラスの一部。例外クラスは、System.ApplicationExceptionクラスとSystem.SystemExceptionクラスです。

例を見てみましょう-

using System;
using System.Reflection;
public class Demo {
   public static void Main(){
      Type type = typeof(Subject);
      try {
         FieldInfo fieldInfo = type.GetField("SubName");
         MemberInfo[] info = type.GetMember("SubName");
         Console.Write("Members = ");
         for (int i = 0; i < info.Length; i++)
            Console.WriteLine(" {0}", info[i]);
         Console.WriteLine("FieldInfo = {0}", fieldInfo);
      }
      catch (ArgumentNullException e){
         Console.Write("{0}", e.GetType(), e.Message);
      }
   }
}
public class Subject{
   public string SubName = "Science";
}

出力

これにより、次の出力が生成されます-

Members = System.String SubName
FieldInfo = System.String SubName

別の例を見てみましょう-

using System;
public class Demo {
   int result;
   Demo() {
      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);
      }
   }
   public static void Main(string[] args) {
      Demo d = new Demo();
      d.division(100, 0);
   }
}

出力

これにより、次の出力が生成されます-

Exception caught = System.DivideByZeroException: Attempted to divide by zero.
   at Demo.division(Int32 num1, Int32 num2) in d:\Windows\Temp\n0kebv45.0.cs:line 11 
Result = 0
のDemo.division(Int32 num1、Int32 num2)で
  1. JSPで例外を処理する方法は?

    タグはスロー可能をキャッチします それはその本体で発生し、オプションでそれを公開します。これは、エラー処理と問題へのより適切な対処に使用されます。 属性 タグには次の属性があります- 属性 説明 必須 デフォルト var 本体の要素によってスローされた場合にjava.lang.Throwableを保持する変数の名前。 いいえ なし 例 <%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %> <html>  

  2. C++での例外処理の基本

    C ++では、例外処理はランタイムエラーを処理するプロセスです。例外は、C++で実行時にスローされるイベントです。すべての例外は、std::exceptionクラスから派生します。処理可能なランタイムエラーです。例外を処理しない場合は、例外メッセージを出力してプログラムを終了します。 例外は、C ++標準では、プログラム内で使用できるクラスとして定義されています。親子クラス階層の配置を以下に示します。 C++の一般的な例外クラスは次のとおりです。 例外 説明 std ::exception これは、すべての標準C++例外の例外および親クラスです。 std ::