我有以下问题: 我们已经在生产中使用了一个应用程序,客户端获得的每个异常都通过一个获取异常的方法进行过滤,并通过消息框显示其属性(包括堆栈跟踪):
private void HandleException(Exception ex)
通常,这会提供足够的信息来实现我的应用程序中发生异常的位置(哪个dll,哪个方法和哪个行)。 例如:
从这里我可以知道在我的EntitySearchControl类中,在第742行发生了异常,我可以相应地修复异常(在这种情况下添加一个空的检查)。
问题有时我会从我得到的异常实例中获得部分堆栈跟踪,例如:
消息:指定的参数超出了有效值范围。 参数名称:index 来源:PresentationCore
堆栈跟踪:
这是我得到的整个堆栈跟踪。现在,我们的项目中有10个以上的解决方案,我不知道在我的应用程序中这个异常的来源在哪里? 所有堆栈跟踪都来自.Net dll,我不知道如何重现问题并了解它发生的位置(为了解决它)。 我希望获得更多信息以登录此消息框,该消息框显示异常的属性,因此我可以实现如何处理此类不明确的异常。
也许我应该为我的private void HandleException(Exception ex)方法添加另一个参数,导致包含堆栈跟踪属性的异常实例似乎不足以满足这些情况。
任何建议都将不胜感激!