Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
スタックの上位で処理されている保留中の例外がない場合、C ++標準は次のコードに対して何が起こるべきであると言っていますか?
try { throw; } catch (...) { cerr << "Caught exception." << endl; }
オブジェクトのないスローはキャッチされますか?
2003 C++ 標準 §15.1[except.throw]/8 から:
現在例外が処理されていない場合は、 オペランドの呼び出しなしでthrow 式terminate()を実行します。
terminate()
したがって、あなたの例では、現在例外が処理されていないため、何もスローされず、代わりterminate()に呼び出されます。terminate()は戻らないため、あなたのブロックcatchは決して入力されません。
catch