私はC++コードを扱うJavaプログラマーであり、例外処理に関する助けが必要です。すべての例外とログ情報を取得する
私は次のような構造でコードを持っている:
try{
...
}
catch(...)
{
log("Exception occurred");
}
例外が発生しているが、tryブロックは本当に巨大で、デバッグがオプションではありませんので、私は最小限に私の関連を与えるために、コードを変更する必要があります例外に関する情報
だから私は(私のJavaの知識と協力し、C++のガイドを参照)、既存のcatchブロックの前に、次のcatchブロックを追加しました:
catch(exception e)
{
log(e.what());
}
しかし、私はまだ古いメッセージを取得しています - 「例外が発生しました」 。 tryブロックのコードには、strncpy, memcpy
などの多くの低レベル関数が含まれています。
なぜcatch
ブロックが期待どおりに機能しないのですか?何が起こっているのか、どの行にあるのか、Javaが簡単に与えるスタックトレースと同様の情報を得るために何ができるのですか?
"C"には "例外"というものはありません(少なくとも制御フローメカニズムの意味ではありません)。 – Mankarse
@Mankarse、 'std :: exception'はC++標準ライブラリには存在しません。 Shaileshに、gdbを使ってそのような非標準的な例外をデバッグすることができます。 – iammilind
可能な複製[catchブロックからバックトレースを取得](http://stackoverflow.com/questions/4283943/getting-the-backtrace-from-the-catch-block) –