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

C++とJavaでの例外処理の比較


例外処理機能は、現在ほとんどすべてのオブジェクト指向言語に存在します。 C ++とJavaでも、この種の機能を利用できます。 C ++での例外処理とJavaでの例外処理にはいくつかの類似点があります。どちらの言語でも、try-catchブロックを使用する必要があります。いくつかの困難もありますが。これらは以下のようなものです-

C ++では、例外として任意のタイプのデータをスローできます。どのタイプのデータも、プリミティブデータ型とポインターを意味します。 Javaでは、スロー可能なオブジェクトのみをスローできます。スロー可能なクラスのサブクラスもスロー可能になります。

#include <iostream>
using namespace std;
int main() {
   int x = -5;
   try { //protected code
      if( x < 0 ) {
         throw x;
      }
   }
   catch (int x ) {
      cout << "Exception Caught: thrown value is " << x << endl;
   }
}

出力

Exception Caught: thrown value is -5

C ++には、あらゆるタイプの例外をキャッチするためのcatchallというオプションがあります。構文は次のようになります-

try {
   //protected code
} catch(…) {
   //catch any type of exceptions
}

#include <iostream>
using namespace std;
int main() {
   int x = -5;
   char y = 'A';
   try { //protected code
      if( x < 0 ) {
         throw x;
      }
      if(y == 'A') {
         throw y;
      }
   }
   catch (...) {
      cout << "Exception Caught" << endl;
   }
}

出力

Exception Caught

Javaでは、任意のタイプの例外をキャッチする場合は、Exceptionクラスを使用する必要があります。これは、Javaに存在する例外、または一部のユーザー定義の例外のスーパークラスです。構文は次のようになります-

try {
   //protected code
} catch(Exception e) {
   //catch any type of exceptions
}

C++にはfinallyブロックはありません。しかし、Javaには、finallyと呼ばれる特別なブロックが1つあります。 finallyブロックにコードを書くと、常に実行されます。 tryブロックがエラーなしで実行された場合、または例外が発生した場合、finallyは常に実行されます。

Javaの場合

public class HelloWorld {
   public static void main(String []args) {
      try {
         int data = 25/5;
         System.out.println(data);
      } catch(NullPointerException e) {
         System.out.println(e);
      } finally {
         System.out.println("finally block is always executed");
      }
      System.out.println("rest of the code...");
   }
}

出力

5
finally block is always executed
rest of the code...

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

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

  2. Javaの例外とその処理方法

    Java開発者は、Javaの例外と例外処理について十分な知識を持っている必要があります。 このチュートリアルでは、すべてのプログラマーがJavaプログラムを操作するときに必要な基本的な知識を提供します。まず、Java例外とは何かを理解することから始めましょう。 Java例外とは Javaプログラムで問題が発生すると、実行中にプログラムが突然終了する可能性があります。これらの問題は例外と呼ばれます。 優れたプログラマーは、実行中に発生する可能性のあるエラーを認識し、そのような例外が発生した場合にプログラムがとる代替ルートを提供できる必要があります。この方法は例外処理と呼ばれます。 ここで