未捕获的异常确定源

时间:2013-09-16 17:44:29

标签: .net wpf exception-handling

我最近逐行跟踪了异常行的来源

Try
{
    Debug.WriteLine("ViewHelper before comObj.Send() ");
    comObj.Send();   // a very old com component
    Debug.WriteLine("ViewHelper after  comObj.Send() ");
}
Catch (Exception Ex)
{
    Debug.WriteLine("ViewHelper comObj.Send " + Ex.Message);    
}

comObj.Send()抛出异常
异常崩溃应用程序
但它没有陷入上述尝试捕获中 我已经打破了Visual Studio中的所有Exceptions,并且没有打破这一行 它被捕获在全局错误处理程序App_DispatcherUnhandledException
中 如果我设置e.Handled = true;它被抛出很多次仍然崩溃的应用程序
例外情况没有提供有关来源的信息 我找到源的唯一方法是调试语句之前和之后的那些 在一百个电话中抛出异常,因此很难跟踪

有没有更好的方法来查找例外来源?
有没有办法回到最后一行叫?

在后台网站中,我应该专注于COM组件。

1 个答案:

答案 0 :(得分:1)

当我怀疑从本机代码抛出异常时,我启用了debugging of unmanaged code。来自MSDN

  

启用非托管代码的调试

     
      
  1. 在“解决方案资源管理器”中选择项目后,在“项目”菜单上单击“属性”。

  2.   
  3. 单击“调试”选项卡。

  4.   
  5. 选中“启用非托管代码调试”复选框。

  6.   

这会降低性能,因此在不调试本机组件时将其关闭。

我首先打破所有异常,但你提到你这样做了,所以非管理调试对我来说是下一步。