User Tools

Site Tools


programming:cpp:exception

例外処理

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);
 
}
programming/cpp/exception.txt · Last modified: 2022/05/05 11:09 by odagawa