C ++の例外
C ++の例外
C ++コードを実行すると、さまざまなエラーが発生する可能性があります。プログラマーによるコーディングエラー、間違った入力によるエラー、またはその他の予期しないことです。
エラーが発生すると、C ++は通常停止し、エラーメッセージを生成します。これの専門用語は次のとおりです。C++は例外をスローします(エラーをスローします)。
C ++で試してキャッチ
C ++での例外処理は、次の3つのキーワードで構成されてtry
いthrow
ますcatch
。
このtry
ステートメントを使用すると、実行中にエラーをテストするコードのブロックを定義できます。
問題が検出されると、throw
キーワードは例外をスローします。これにより、カスタムエラーを作成できます。
このcatch
ステートメントを使用すると、tryブロックでエラーが発生した場合に、実行するコードのブロックを定義できます。
try
とcatch
キーワードはペアになっています。
例
try {
// Block of code to try
throw exception;
// Throw an exception when a problem arise
}
catch () {
// Block of code to handle errors
}
次の例を考えてみましょう。
例
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw (age);
}
}
catch (int
myNum) {
cout << "Access denied - You must be at least 18 years
old.\n";
cout << "Age is: " << myNum;
}
例の説明
ブロックを使用してtry
いくつかのコードをテストします。age
変数が。未満の場合18
、throw
例外が発生し、catch
ブロックで処理されます。
ブロック内で、catch
エラーをキャッチし、それに対して何かをします。catch
ステートメントはパラメーターを取ります。この例では、int
変数( )を使用して(ブロック()に型myNum
の例外をスローしているため)、の値を出力します。int
try
age
age
エラーが発生しない場合(たとえば、age
が20
の代わりにある場合15
、つまり18より大きい場合)、catch
ブロックはスキップされます。
例
int age = 20;
キーワードを使用してthrow
、整理のためのカスタムエラー番号/コードなどの参照番号を出力することもできます。
例
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw 505;
}
}
catch (int myNum) {
cout << "Access denied - You must be at least 18 years old.\n";
cout << "Error number: " << myNum;
}
あらゆるタイプの例外を処理する(...)
ブロックで使用されているthrow
タイプがわからない場合は、try
ブロック内で「3つのドット」構文(...
)を使用できますcatch
。これにより、あらゆるタイプの例外が処理されます。
例
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw 505;
}
}
catch (...) {
cout << "Access denied - You must be at least 18 years
old.\n";
}