nested try...catch block |
尚未結案
|
yhchu
一般會員 發表:2 回覆:70 積分:24 註冊:2004-01-28 發送簡訊給我 |
各位,最近遇到一個奇怪的問題如下:
try { ... try { idTCPClient->Connect(TimeOut); } catch (const Exception& e) { return; } ... } catch (...) { ... }這段 code 是在 worker thread 裡執行的,程式使用許多 thread 同時執行。但是執行時發現程式有很嚴重的 memory leak 問題,使用 AQtime 4 抓漏的結果,發現沒有釋放掉的記憶體是在 Connect 那一行產生的 Exception object! 後來我把 code 改成 try { ... IdTCPClient->Connect(TimeOut); if (!IdTCPClient->Connected()) return; ... } catch (...) { ... }就沒有上述的 memory leak 問題發生了!但是我找了一些 C Exception 處理的資料看,還是搞不懂為什麼會發生這樣的問題。不知道有沒有大大能幫忙解惑,謝謝! |
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
|
yhchu
一般會員 發表:2 回覆:70 積分:24 註冊:2004-01-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |