呼び出される関数にthrow節がない場合、呼び出された関数から例外をキャッチすることができるかどうかを知りたいと思います。私のアプリケーションは、catchブロック内出力文をクラッシュするたびに理由fun2()
、私のアプリケーションがクラッシュしたの、ここで呼び出された関数から例外をキャッチする方法
void thread11()
{
while(true)
{
try
{
...
fun2() //static library function
...
}
catch(std::exception& e)
{
std::cout << "exception is " << e.what() << std::endl;
}
}
}
を印刷されませんので、私はこの質問を求めていた理由です。これらの例外を呼び出し元関数で捕捉することは可能ですか?何throw
句がない場合は、すべての例外を逃れることができます。
C関数はC++例外をスローしません。また、C++の例外とハードウェアとその他のシステム例外との間にはクラッシュを引き起こす可能性のある違いがあります。 C++プログラムでは、C++の例外を捕捉することしかできません。 –
私はあなたが 'catch(...) 'という構文について質問していると思いますが、わかりません。 – UKMonkey
完全に異なる獣であるシステム例外とC++例外を混同していると思います。システム例外はOS固有のものなので、ここでもう少し詳しい情報を教えてください。 – Frank