相关疑难解决方法(0)

.NET - 实现"捕获所有异常处理程序"的最佳方法是什么

我想知道最好的方法是"如果所有其他方法都失败了".

我的意思是,你在应用程序中处理尽可能多的异常,但仍然存在bug,所以我需要有一些东西可以捕获所有未处理的异常,这样我就可以收集信息并将它们存储在数据库中或提交它们到网络服务.

AppDomain.CurrentDomain.UnhandledException事件是否捕获了所有内容?即使应用程序是多线程的?

旁注:Windows Vista公开了本机API函数,允许任何应用程序在崩溃后自行恢复...现在无法想到名称...但我宁愿不使用它,因为我们的许多用户仍在使用Windows XP.

.net c# exception-handling exception

75
推荐指数
4
解决办法
3万
查看次数

如何确定给定方法可以抛出哪些异常?

我的问题与这个问题非常相似"找出方法可能会在C#中引发的异常".但是,我真的想知道是否有人知道一种方法来确定给定方法可能引发的所有异常的堆栈.我希望有一个工具或实用程序,我可以在编译时或通过像FxCop,StyleCop或NCover这样的反射来分析代码.我在运行时不需要这些信息我只是想确保我们捕获异常并在代码中正确记录它们.

我们目前正在捕获我们所知道的异常并记录所有外卡.这确实很有效; 但是,我只是希望有人使用或知道可以发现这些信息的工具.

c# error-handling exception

32
推荐指数
3
解决办法
1万
查看次数

无限循环使TimeManager无效

我在WPF应用程序中遇到了一个非常棘手的缺陷,需要跟踪.错误消息是:

在布局/渲染过程中反复使TimeManager失效会导致无限循环.

堆栈跟踪(它的价值)是:

在System.Windows.Media.MediaContext.RenderMessageHandlerCore(对象resizedCompositionTarget)在System.Windows.Media.MediaContext.RenderMessageHandler(对象resizedCompositionTarget)在System.Windows.Threading.ExceptionWrapper.InternalRealCall(代表回调,对象指定参数时,的Int32 numArgs)在MS .Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source,Delegate方法,Object args,Int32 numArgs,Delegate catchHandler)

这是一个间歇性的缺陷,我唯一可以捕获它的地方是在app配置文件中,我正在捕获Application_DispatcherUnhandledException消息.我在我的应用程序中的所有内容都包含在try catch块中,然而这些内容最终会被捕获到未处理的异常中.

有没有人对此有任何见解?我在互联网上搜索了一些东西并且没有发现任何东西,并且想到这里可能有人可能有一些见解或想法如何追踪这一点.目前,我正在吞下这个异常并让应用程序继续运行,因为它似乎对它没有任何影响(除了崩溃).

c# wpf exception-handling infinite-loop unhandled-exception

14
推荐指数
1
解决办法
2072
查看次数

如何统一处理所有错误,包括内部C库错误

我希望优雅地处理所有内部错误,而无需程序终止.

作为讨论在这里,使用_set_se_translator 捕捉除以零错误.

但是它没有捕获,例如,C运行时库错误-1073740777(0xc0000417),这可能是由printf的格式字符串引起的,它们的百分号不应该出现.(这只是一个例子;当然我们应该检查这样的字符串).要处理这些,需要_set_invalid_parameter_handler.

此处列出大约十个其他此类处理程序.

此外,这个将捕获未捕获的C++异常:SetUnhandledExceptionFilter.因此,它可以与__set__ ...函数一起使用.(关于在MSVC 2008中使用它的文章.)

我想捕获任何和所有错误,以便我可以处理它们(通过记录,抛出现代C++标准异常并返回特定于应用程序的错误代码).是否有一个捕获一切的处理程序?

另请参阅StackOverflow上的内容.

我正在使用Visual Studio 2008.

c c++ exception-handling visual-studio

3
推荐指数
2
解决办法
4648
查看次数