2010-10-28 27 views
2

C#中有一種方法可以測試異常堆棧展開期間是否執行語句執行嗎?在語句執行期間測試堆棧展開

謝謝, Marcello。

編輯: 我的意思是這樣:

using (NewDbTransaction()) { 
    //do some DB stuff here 
} <-- here Dispose() of IDisposable is called 

void DbTransactionWrapper.Dispose() { 
    if (InException()) //is this possible??? 
    Rollback(); 
    else 
    Commit(); 
} 
+2

它被稱爲try/catch - 也就是catch部分 – 2010-10-28 08:41:22

+1

也許他的意思是,如果有一些函數可以調用,以查明代碼是從catch/finally塊中調用的。 – 2010-10-28 08:47:09

+0

這很難被稱爲經常使用的功能。你想解決什麼問題? – 2010-10-28 09:45:27

回答

0

簡單地趕上並重新拋出異常。

編輯或者你的意思是「我如何檢測finally塊中的異常」?在這種情況下,您可以在catch塊中設置一個標誌並在finally塊中讀取它。

0

stacktrace這個類可能會給你一些幫助,但是你必須自己檢查一下堆棧。我不認爲有一種簡單的方法可以發現代碼是從異常塊調用的。