处理全局错误(OutofMemory,StackOverflow等)VB.NET

时间:2015-03-26 01:23:16

标签: vb.net error-handling

我的应用程序旨在在各种计算机上全天候运行。话虽如此,出错可能会出错(摩尔定律),因此我希望确保我的应用程序尽可能稳定。

我想知道是否可以处理VB.NET中的全局错误 - 例如OutofMemoryErrors,StackOverflow错误和其他错误。可能出现的错误。虽然我知道正确的编程应该能够阻止这些错误的发生 - 但应该总是有一个后备。

有了这样的说法,Visual Basic .NET中是否有一种方法可以处理内存不足,堆栈溢出等错误,如果遇到其中一个问题,只需让应用程序自行重启? Application.Restart()?

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

一种方法是编写与应用程序定期通信的服务,当它没有响应时终止并重新启动应用程序。如果服务最初启动应用程序,则应该可以执行此操作。这有利于在应用程序锁定时重新启动而不会产生错误。

答案 1 :(得分:0)

您的主应用程序每n秒检查一个已知文件是否存在 - 如果该文件存在 - 它将删除它。

现在创建一个'Sentinel'应用程序 - 它有一个作业 - 来创建一个包含时间的文件。此任务将循环,并且每n秒检查一次该文件是否存在。如果文件存在 - 打开文件并读取时间。如果回读的时间早于n秒 - 您的主应用程序已崩溃 - 删除标记文件并重新启动主应用程序。如果该文件不存在 - 您的主应用程序仍在运行。