我已經註冊了3個處理器與expat解析器: - 啓動 末端 - 文本Expat解析器 - C++ -Exception處理
而且從主程序,我讀了xml文件,緩衝,並調用API XML_Parse 。 事情是這樣的:
try {
if(! XML_Parse (....))
{
// throw user-defined expection here
}
catch(...)
{
}
} // end of try
catch(...)
{
}
如果XML_Parse失敗時返回0,一個異常被從裏面是否拋出。它被捕獲在內部的捕獲塊。
這是我的問題: 如果用戶定義的異常在解析過程中從任何處理程序拋出,是否會被捕獲到外部捕獲?
如果是,它實際上不在我的代碼中發生。相反,它是傾銷核心和堆棧顯示拋出導致std:terminate。 在拋出HANDLERS異常之前,我還必須執行其他任何操作。
謝謝。
對不起。沒有內在的捕獲。只有一個接下來的嘗試。所以,有兩個地方可以拋出異常。一個來自內部,另一個來自任何一個處理者。那麼,從HANDLERS拋出異常時它的行爲如何呢? –
此外,匿名捕獲只是爲了描述問題。我有適當的catch塊處理拋出的對象。我主要關心的是如果處理者拋出異常會發生什麼? –