C++

try-catch構文

更新日:

try-catch構文とは

try-catch構文とはC++における例外処理を実装する為の機能です。
これを使えば簡単に例外的な動作を処理できます。

詳しくは例外処理の基礎を参照。

例外処理の基礎

try-catch構文の使い方

try-catch構文にはインクルードなど必要な準備はありません。

try-catch構文は、tryブロックとcatchブロックの二種類からなります。

tryブロックには例外が発生するかもしれないコードを記述します。
catchブロックには例外が発生した際の処理を記述します。

try{
【例外が発生するかもしれない処理】
}

catch(【throwの型】 【変数名】){
【例外が発生した時の処理】
}

tryブロック内では条件分岐を使って例外を検知します。
例外が発生したら例外をthrowします。

ただし、throwされた値を使わない場合変数名の指定は必要ありません。

if(【例外が発生したら】)
    throw 【値】;

throwすることを「例外を投げる」とも表現します。
throw文はreturn文と似た意味を持つと考えて良いでしょう。

return文が実行されるとその関数を抜け出し、returnした値になります。
throw文も実行されるとtryブロックを抜けますが、その後throwした値をcatchブロックに渡して実行します。

throwを行う際、値はchachブロックで定義した型を投げる必要があります。

サンプルコード

以下がサンプルコードです。

try_catch_sample1.cpp

#include <iostream>

using namespace std;

int main(void)
{
    int input;
    try
    {
        cin >> input;
        if(input < 0)
            throw 0;
    }
    catch(int e)
    {
        cout << "error code : " << e << endl;
    }

    return 0;
}

入力値が負数ならエラーとして、0をthrowしその値を表示しています。
cinはtryブロックの中である必要はありませんが、エラーがどこで発生するかがわかりやすいのでtryブロック内に記述しています。



-C++

Copyright© C言語/C++入門講座  ツナサーモン , 2019 All Rights Reserved Powered by AFFINGER5.