Vb.net 应用程序崩溃,无错误--未处理的已处理

Vb.net 应用程序崩溃,无错误--未处理的已处理,vb.net,winforms,exception-handling,.net-3.5,unhandled-exception,Vb.net,Winforms,Exception Handling,.net 3.5,Unhandled Exception,我已经到处寻找关于如何尝试和捕获所有错误的建议,但是我没有找到任何我没有尝试过的东西 这是我最近在工作中继承的Visual Basic.NET(.NET 3.5)应用程序。他们已经有一段时间遇到这个问题了,应用程序将在没有错误的情况下崩溃——程序只是关闭/消失 应用程序已在处理MyApplication.UnhandledException,但未捕获问题。我为AppDomain.CurrentDomain.UnhandledException添加了一个处理程序,以查看这是否会抓住问题,但运气不

我已经到处寻找关于如何尝试和捕获所有错误的建议,但是我没有找到任何我没有尝试过的东西


这是我最近在工作中继承的Visual Basic.NET(.NET 3.5)应用程序。他们已经有一段时间遇到这个问题了,应用程序将在没有错误的情况下崩溃——程序只是关闭/消失

应用程序已在处理MyApplication.UnhandledException,但未捕获问题。我为
AppDomain.CurrentDomain.UnhandledException
添加了一个处理程序,以查看这是否会抓住问题,但运气不佳,我正在处理
System.unhandledexceptioneventargets.ExceptionObject
可能不是
Exception
类型的事实

没有创建其他线程,也没有创建其他AppDomain。它似乎在3-5个多小时的使用期间崩溃,并且不依赖于用户采取的行动

说了这么多,我还有什么可以尝试捕捉这些错误的吗?我所有的专业知识都是围绕C#展开的,所以我不确定是否还有其他东西可以通过VB.NET实现,或者我是否错过了其他东西

我的另一个问题是:在这些事件中记录错误的正确方法是什么?我通常会尝试登录到文件,但是,现有代码和我自己快速尝试捕获未处理的AppDomain异常会触发MessageBox。当我写这篇文章时,我可以把这看作是我没有被告知错误的一个原因

谢谢

更新1


我终于能够让它为我崩溃(不是在IDE中),并看到一个MessageBox窗口轮廓在内容绘制之前快速出现和消失。我修改了未处理的异常处理,改为登录到用户桌面上的文件。我想在这一点上,这更像是一个等待的游戏,因为我无法让它在IDE中崩溃

似乎我捕获所有异常的尝试都是正确的。捕获AppDomain.CurrentDomain.UnhandledException在这些崩溃时被触发。我最初尝试弹出一个消息框是有缺陷的。今天,我改为登录到用户桌面上的一个文件,错误被正确报告后,它崩溃了



万一有人对这次崩溃感到好奇——我似乎因为第三方控制而耗尽了GDI资源。初始化控件时,随机引发内存不足异常。就我今天发现的错误而言,它在打开表单时在标准文本框的构造函数上爆炸了。这与我在运行内存探查器时发现的非常小的GDI泄漏相吻合。

愚蠢的问题:如果没有任何错误,您如何知道这是异常?也许在一些很少使用的例程中,有人插入了一个
结尾
或类似的东西,在没有进一步通知或考虑任何事情的情况下关闭了应用程序?@Jens不幸的是,我已经研究过了。我什么也没找到,有时它会在“保存”时崩溃。用于保存的跟踪代码没有生成任何应用程序出口或类似的内容。我现在真的对这个问题感到困惑。保存过程中还包含一个
Try Catch
for
Exception
。如果您真的非常想添加代码,将日志条目写入每个函数,如
IO.file.AppendText(“C:\Logs\Logs.txt”,Date.Now.Tostring&“:function XY start”)
或类似的内容。崩溃后,您可以跟踪导致崩溃的函数调用情况。请尝试从发布代码切换到调试代码。至少如果它在错误处理之外失败,它将被记录到事件日志中。检查你的副总管,确保每件东西都有试扣。如果您使用的是表单工厂,请确保将新表单实例化为表单变量,而不是将表单变量设置为Nothing并实例化新实例。将分析代码添加到所有表单加载/卸载。类和Sub-Main也一样。代码中是否有FailFast?