C++での例外処理の基本
C ++では、例外処理はランタイムエラーを処理するプロセスです。例外は、C++で実行時にスローされるイベントです。すべての例外は、std::exceptionクラスから派生します。処理可能なランタイムエラーです。例外を処理しない場合は、例外メッセージを出力してプログラムを終了します。
例外は、C ++標準では、プログラム内で使用できる
C++の一般的な例外クラスは次のとおりです。
| 例外 | 説明 |
|---|---|
| std ::exception | これは、すべての標準C++例外の例外および親クラスです。 |
| std ::bad_cast | これはdynamic_castによってスローされる例外です。 |
| std ::bad_exception | この例外は、C++プログラムで予期しない例外を処理するために使用されます。 |
| std ::bad_alloc | 通常はnewによってスローされます。 |
| std ::logic_failure | この例外は、コードを読み取ることで検出できます。 |
| std ::runtime_error | この例外はコードを読み取っても検出できません |
| std ::bad_typeid | typeidによってスローされる例外です。 |
キーワード:
例外処理には、try、catch、throwの3つのキーワードがあります。
Try / Catchブロック:
C ++では、例外処理はtry/catchステートメントを使用して実行されます。例外が発生する可能性のあるコードは、Tryブロックで配置するために使用されます。キャッチブロックは、例外を処理するために使用されます。
サンプルコード
#include <iostream>
using namespace std;
class Sample1 {
public:
Sample1()
{
cout << "Construct an Object of sample1" << endl;
}
~Sample1()
{
cout << "Destruct an Object of sample1" << endl;
}
};
class Sample2 {
public:
Sample2()
{
int i=7;
cout << "Construct an Object of sample2" << endl;
throw i;
}
~Sample2()
{
cout << "Destruct an Object of sample2" << endl;
}
};
int main() {
try {
Sample1 s1;
Sample2 s2;
} catch(int i) {
cout << "Caught " << i << endl;
}
} 出力
Construct an Object of sample1 Construct an Object of sample2 Destruct an Object of sample1 Caught 7
ユーザー定義の例外:
例外クラスの機能を継承してオーバーライドすることで、独自の例外を定義できます。
サンプルコード
#include <iostream>
#include <exception>
using namespace std;
struct DivideByZero : public exception {
const char * what () const throw () {
return "My Exception";
}
};
int main() {
try {
throw DivideByZero();
} catch(DivideByZero& e) {
cout << "Exception caught" << endl;
cout << e.what() << endl;
} catch(exception& e) {
}
} 出力
Exception caught My Exception what() = A public method provided by exception class and it has been overridden by all the child exception classes. It returns the cause of an exception.
-
C++で例外はどのように機能しますか
C ++では、例外処理はランタイムエラーを処理するプロセスです。例外は、C++で実行時にスローされるイベントです。すべての例外は、std::exceptionクラスから派生します。処理可能なランタイムエラーです。例外を処理しない場合は、例外メッセージを出力してプログラムを終了します。 例外は、C ++標準では、プログラム内で使用できるクラスとして定義されています。親子クラス階層の配置を以下に示します- C++の一般的な例外クラスは-です。 Sr.No。 例外と説明 1 std ::exception これは、すべての標準C++例外の例外および親クラスです。
-
Pythonでの例外処理とは何ですか?
エラーとは、構文エラーのように、コンパイル時にプログラムで問題が発生することです。 たとえば。 'abe' = 5 出力 SyntaxError: can't assign to literal ステートメントまたは式が構文的に正しい場合でも、それを実行しようとするとエラーが発生する可能性があります。実行中に検出されたエラーは例外と呼ばれ、必ずしも致命的とは限りません。例外が処理されない場合、コードの実行時または実行時にエラーメッセージが表示されます。 一般に、Pythonスクリプトで処理できないエラーが発生すると、例外が発生し、例外オブジェクトが作成されます。