- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了一个应用程序挂起的问题,并给我默认的“请告诉微软这个问题”弹出窗口,而不是应用程序中的“未处理的异常”对话框。
在应用程序代码中,Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 都被重定向到将错误日志写入磁盘、将屏幕截图保存到磁盘并显示友好对话框的方法。
但是当这个错误发生时,这三件事都不会发生。我得到的只是事件查看器中的这个:
事件类型 clr20e3、P1 myapp.exe、P2 4.0.0.0、P3 47d794d4、P4 mscorlib、P5 2.0.0.0、P6 471ebc5b、P7 15e5、P8 27、P9 system.argumentoutofrange、P10 NIL
鉴于该错误似乎是在应用程序运行几个小时后才发生的,我怀疑这可能是内存泄漏的问题。我搜索了一些“clr20e3”,但只找到了 ASP.Net 的东西。我的应用程序是 Windows 窗体 (.Net 2.0) exe,使用相当多的程序集 - 在 C# 和一些非托管 C++ 中。
我想这也可能是错误处理方法中的错误——正如一些答案所暗示的那样,我可能会尝试在错误处理程序开始时记录日志(但考虑到这几乎是我所做的......)。
任何解决此问题的帮助都将不胜感激 - 无论是解决方案,还是有关如何找出问题根本原因的建议。
更新:原始错误的根本原因是访问具有负索引的数组(即 system.argumentoutofrange)。为什么这没有被困住对我来说有点神秘,但考虑到这两个异常都被发送到相同的处理代码,我想知道是否可能存在(例如)两者都被调用并争夺资源的情况(例如日志文件)?
我设法通过在错误处理代码中的任何其他操作之前执行 EventLog.WriteEntry 来证明这一点。现在添加了一个标志以防止在错误处理中重新进入,我似乎不再有问题......
最佳答案
这里只是在黑暗中射击 - ArgumentOutOfRangeException 是否有可能实际上是从您的异常处理程序中抛出的?
此外,您没有说明问题是什么类型的应用程序——Application.ThreadException 只影响 WinForms 线程,所以如果这不是 GUI 应用程序,它就没用了。 (请参阅 MSDN documentation 中的备注部分)
关于c# - 通过 Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/92434/
当抛出异常并在 Application.ThreadException 事件处理程序中捕获它们时,我看到了一些奇怪的行为。 基本上下面示例中发生的事情是在 BackgroundWorker 的 DoW
当抛出异常并在 Application.ThreadException 事件处理程序中捕获它们时,我看到了一些奇怪的行为。 基本上下面示例中发生的事情是在 BackgroundWorker 的 DoW
我刚刚在 .NET 2.0 应用程序中修复异常处理,我偶然发现了一些奇怪的问题 Application.ThreadException . 我想要的是能够从 GUI 元素(例如 button_Clic
我最近在我的C#(WinForms)应用程序中实现了一些(基本)未处理的错误处理程序。 UnhandledExceptionEventHandler工作正常,但是在ThreadExceptionEve
我有一个来自应用程序的窗口,带有这样的 program.cs 代码: static class Program { /// /// The main entry point for
我们有一个很大的应用程序,为了确保我们的客户不会收到“XXX 已停止工作”的消息,我们添加了一些处理程序(我们在其中记录了一些错误和一些其他内容)。 它工作正常,我们已经解决了很多这样的问题(通过分析
我正在使用 Application.ThreadException在我的 winforms 应用程序中处理和记录意外异常的事件。 现在,在我的应用程序中的某个地方,我得到了以下代码(或者更确切地说,是
Application.ThreadException的reference page说 Because this is a static event, you must detach your eve
我有一个方法,可以从网络获取Object,然后使用此数据更新UI。 我使用第三方API来获取数据并接收数据。下载过程在新的 Thread 中完成,获取和更新数据在 UI Thread 中完成。 在我的
首先是一些背景知识:我有一个多线程 WinForms 应用程序,它正在与 native dll 进行互操作。此应用程序有时会因未处理的异常而崩溃,我们正在尝试调查为什么会发生这种情况。为了方便它,我正
我不明白为什么在 VS2010 中使用 (CTRL-F5 - Run without Debugger) 在以下情况下只得到 1 个消息框: Public Class Form1 Privat
我有一个 WinForms 应用程序,它创建了多个表单,每个表单都在自己的 GUI 线程(而不是主 GUI 线程)中。我想处理所有这些表单的未处理异常事件 (Application.ThreadExc
好吧,这是一个简单的: Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 有什么区别>? 我需要同时处理
似乎在属性的 Set 方法中发生的异常不会冒泡到应用程序的 ThreadException 事件。 我们将该事件与 AppDomain.CurrentDomain.UnhandledException
我遇到了一个应用程序挂起的问题,并给我默认的“请告诉微软这个问题”弹出窗口,而不是应用程序中的“未处理的异常”对话框。 在应用程序代码中,Application.ThreadException 和 A
在我使用的 WinForms 中: System.Windows.Forms.Application.ThreadException System.Windows.Application.Unhand
是否有任何理由更喜欢在 Windows 窗体应用程序中实现全局异常处理程序的这些方法中的一种而不是另一种? 第一种方法 static void Main(string[] args) { tr
我是一名优秀的程序员,十分优秀!