1. ホーム
  2. c++

[解決済み] abort, terminate, exit?

2022-08-03 12:40:27

質問

この3つの違いは何ですか?また、うまく処理できない例外が発生した場合、どのようにプログラムを終了させればよいのでしょうか?

どのように解決するのですか?

私のアドバイスは、どれも使わないことです。代わりに catch で処理できない例外を main() で処理できず、単に return を使うことができます。これは、スタックの巻き戻しが正しく行われ、すべてのデストラクタが呼び出されることが保証されることを意味します。言い換えれば

int main() {
    try {
       // your stuff
    }
    catch( ... ) {
       return 1;    // or whatever
    }
}