每當我將Action
作爲內聯聲明的參數傳遞時,在引發異常時不會得到正確的行號。例如,如果我宣佈這個功能:獲取來自參數化動作的異常行號
public static void Do(Action action)
{
//do some things
action();
//do some things
}
然後調用它像這樣:
Helper.Do(() => {
int x = 1;
x++;
x = x/0;
x--;
});
返回將引用線Helper.Do(() => {
除外,它並沒有告訴我哪行拋出的實際錯誤。有沒有辦法在仍使用此模式的情況下檢索正確的行號?
是'Helper.Do'一個'嘗試catch'裏面? – JohanP
我可以把它放在'try catch'中,甚至讓整個應用程序崩潰,在這兩種情況下,異常中的堆棧跟蹤都會指向'Helper.Do'行號。 –