try-catch 文を用いることでプログラムのどこでエラーが起こっているかをスムーズに把握することができる.
try
で例外処理が発生しうる場合を囲み, catch
で例外クラスを把握して確認する,という流れ.
例外クラスは throw
を用いて投げる.
STL で用意されている例外クラスは以下の通り
関数 | 説明 |
---|---|
std::logic_error | 論理エラー |
std::runtime_error | 実行時エラー |
std::bad_alloc | メモリ確保時エラー |
std::bad_cast | 型のキャストエラー |
std::out_of_range | 添字範囲外 |
std::invalid_argument | 引数無効 |
int main (int argc, char *argv[]) { try { if (/*例外条件*/) throw std::runtime_error("Runtime error : " << "内容"); } catch ( const std::runtime_error &error ) { std::cerr << error.what() << std::endl; std::exit(1); } catch ( const std::invalid_argument &error ) { std::cerr << error.what() << std::endl; std::exit(1); } std::exit(0); }