5
A
回答
1
感謝你的一切,但我所看到的是,當我從Visual Studio運行程序時,從任何線程拋出未處理的異常時,由.NET編寫的跟蹤輸出到控制檯窗口不會重定向到控制檯窗口。
當我從Visual Studio運行程序時,它只是重定向。 因此,這段代碼非常好,可以看到來自任何線程的所有堆棧跟蹤,這些線程拋出了一個未處理的異常
Trace.Listeners.Clear();
TextWriterTraceListener twtl = new TextWriterTraceListener(Path.Combine(Environment.CurrentDirectory, "logfile.txt"));
twtl.Name = "TextLogger";
twtl.TraceOutputOptions = TraceOptions.ThreadId | TraceOptions.DateTime | TraceOptions.Callstack;
ConsoleTraceListener ctl = new ConsoleTraceListener(false);
ctl.TraceOutputOptions = TraceOptions.DateTime;
Trace.Listeners.Add(twtl);
Trace.Listeners.Add(ctl);
Trace.AutoFlush = true;
4
看看AppDomain.UnhandledException事件。看來,這正是你需要的。
0
我相信你可以通過聽AppDomain.UnhandledException事件來做到這一點。 在WPF的情況下,它值得聽Application.Current.Dispatcher.UnhandledException以及
0
您可以通過ex.StackTrace得到catch塊堆棧跟蹤象下面這樣:
try
{
//Your code;
}
catch(Exception ex)
{
string innerException = ex.InnerException;
string stackTrac = ex.StackTrace;
//Write this stackTrac to any file where you want
}
相關問題
- 1. 寫堆棧跟蹤只記錄時拋出異常
- 2. ScheduledExecutorService的任務拋出異常時不打印堆棧跟蹤
- 3. 僅在拋出異常時打印堆棧跟蹤
- 4. 在Silverlight中重新拋出異常時保留堆棧跟蹤
- 5. JDBC Appender不寫異常堆棧跟蹤
- 6. 異常和堆棧跟蹤
- 7. 異常堆棧跟蹤
- 8. Sammy.js異常堆棧跟蹤
- 9. 從另一個線程打印堆棧跟蹤
- 10. 從另一個異常中初始化帶有堆棧跟蹤的異常?
- 11. 異常(堆棧跟蹤)在一行
- 12. 如何重新拋出異常並保留堆棧跟蹤?
- 13. Java 7:拋出沒有堆棧跟蹤的異常
- 14. 拋出異常,但堅持堆棧跟蹤
- 15. 使用自定義堆棧跟蹤拋出異常
- 16. ELMAH不存儲堆棧跟蹤當Facebook C#SDK拋出異常
- 17. JavaScript重新拋出異常保留堆棧跟蹤
- 18. 重新拋出任務異常(TPL)失去堆棧跟蹤
- 19. 從log4j隱藏一個異常堆棧跟蹤
- 20. 沒有堆棧跟蹤異常
- 21. Java異常處理和堆棧跟蹤
- 22. Resque:異常和堆棧跟蹤
- 23. ASM ByteCode - 異常的堆棧跟蹤
- 24. 檢索異常全堆棧跟蹤
- 25. 打印堆棧跟蹤元素異常
- 26. 異常堆棧跟蹤丟失項目
- 27. 打印異常的堆棧跟蹤
- 28. Java異常堆棧跟蹤不打印
- 29. PostSharp異常堆棧跟蹤未完成
- 30. 異常的空堆棧跟蹤