expat パーサーに 3 つのハンドラーを登録しました: - start -end - text
そして、メイン プログラムから xml ファイルを読み取り、それをバッファリングして、XML_Parse API を呼び出します。このようなもの:
try {
if( ! XML_Parse (....))
{
// throw user-defined expection here
}
catch(...)
{
}
} // end of try
catch(...)
{
}
失敗時に XML_Parse が 0 を返す場合、if 内部から例外がスローされています。そしてインナーキャッチブロックに引っ掛かります。
これが私の質問です: 解析中にユーザー定義の例外がハンドラーのいずれかからスローされた場合、それは外側の catch でキャッチされますか?
はいの場合、実際には私のコードでは発生していません。代わりに、コアをダンプしており、スタックは、throw が std:terminate につながることを示しています。HANDLERS から例外をスローする前に何か他のことを実行する必要がありますか?
ありがとう。