如何在没有调试器的情况下获取Exception细节?

时间:2011-01-02 10:45:08

标签: c# .net

我正在测试库存Windows安装上的.net 4应用程序,并在启动时崩溃。 错误对话框中的“查看问题详细信息”告诉我它是一个System.IO.FileNotFoundException,但没有显示异常数据,所以我不知道它正在尝试加载哪个文件。

有没有办法在不安装visual studio的情况下获得有关异常的更详细数据?

3 个答案:

答案 0 :(得分:1)

您可以使用ProcMon来监控您的应用,以找出它尝试查找的文件。 (启动Procmon时,您应该在启动App之前过滤掉其他所有内容)

答案 1 :(得分:1)

您还可以尝试查看Windows事件日志。例如,在我的机器上快速搜索发现MetroTwit(.NET Twitter客户端)出现以下错误:

Application: MetroTwit.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException
Stack:
   at System.Windows.Application.GetResourcePackage(System.Uri)
   at System.Windows.Application.LoadComponent(System.Object, System.Uri)
   at MetroTwit.View.ErrorView.InitializeComponent()
   at MetroTwit.View.ErrorView..ctor(System.String)
   at MetroTwit.App.Application_DispatcherUnhandledException(System.Object,     System.Windows.Threading.DispatcherUnhandledExceptionEventArgs)
   at System.Windows.Threading.Dispatcher.CatchException(System.Exception)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object,         
    System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.Dispatcher.WrappedInvoke(System.Delegate, System.Object, 
    Int32, System.Delegate)
   at System.Windows.Threading.Dispatcher.InvokeImpl(
    System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, 
    System.Object, Int32)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(
    System.Windows.Threading.DispatcherFrame)
   at System.Windows.Application.RunInternal(System.Windows.Window)
   at System.Windows.Application.Run()
   at MetroTwit.App.Main()

错误级别为Error,源为“.NET Runtime”

答案 2 :(得分:1)

为AppDomain.CurrentDomain.UnhandledException编写事件处理程序。记录或显示e.ExceptionObject.ToString()的值以获取异常消息和堆栈跟踪。