說我有這樣的方法:有沒有辦法找出引發異常的行?
public void SaveData()
{
try
{
foreach (var somevar1 in list.SomeType1s)
{
CEData.SaveRow(sometype1)
}
foreach (var somevar2 in list.SomeType2s)
{
CEData.SaveRow(sometype2)
}
foreach (var somevar3 in list.SomeType3s)
{
CEData.SaveRow(sometype3)
}
foreach (var somevar4 in list.SomeType4s)
{
CEData.SaveRow(sometype4)
}
foreach (var somevar5 in list.SomeType5s)
{
CEData.SaveRow(sometype5)
}
}
catch (Exception e)
{
logger.DebugException("Rollback Occured with the following stack trace: \r\n"
+ e.StackTrace, e);
Rollback();
throw;
}
}
有沒有辦法在制動部分練到什麼線知道嗎?我的堆棧跟蹤將只是說它在方法SaveData()中,但不是哪一行失敗。
我可以在每行之間添加日誌記錄,但我寧願不要(對於調試代碼的各種原因)。
所以,我想我會問。是否有可能知道拋出異常時正在執行哪條線?
更多信息:
看起來像行號應該來的標準。我看不到他們的唯一原因是我正在進行Windows Mobile和Compact Framework開發。所以也許他們不包括在緊湊框架中? (我的項目已「滿」設置調試信息輸出。)
這是一個問題w /運行在發佈vs調試,或沒有符號存在?堆棧跟蹤對於我來說通常都有線路,對於堆棧的每一幀。另外,您是否能夠在重新解決此問題時附加調試器?如果是這樣,並且您正在使用MSVC,只需調出調用堆棧窗口,然後雙擊一個更高的堆棧幀... – 2010-08-17 22:44:54
如果您的PDB未部署到映像中,那也可能是問題。至少,我認識一個正在從事基於CF的產品的人。 – 2010-08-17 22:53:49
我試圖追蹤的錯誤在Visual Studio中不會發生,但是我嘲笑它並且沒有獲得行號。我打開了全面的調試,所以我只能假設這是Compact Framework的限制。 – Vaccano 2010-08-17 22:55:39