我有一个 Windows 服务作为服务器运行。但是,服务器有时会因未处理的错误而立即停止。请帮助我如何处理全局异常。谢谢。
在我看来,你似乎试图以错误的方式解决问题......
当您的程序(或服务)由于未处理的错误而崩溃时,解决方案不是弄清楚在哪里以及如何“处理”all未处理的错误,以便您可以忽略它们并继续执行。我已经更清楚地阐述了这个观点在这个答案中 https://stackoverflow.com/questions/4827628/main-method-code-entirely-inside-try-catch-is-it-bad-practice/4827646#4827646,但简短的版本是,当您遇到未处理的异常时,正确的做法是崩溃。正如原答案中引用的:
发生未处理的异常意味着服务器处于意外状态。通过捕获异常并说“别担心,一切都很好”,您最终会让损坏的服务器继续运行。
[。 。 。 ]
捕获所有异常并让进程继续运行假设服务器可以从意外故障中恢复。但这是荒谬的。您已经知道服务器已无法恢复:它崩溃了!
更好的方法是让服务器崩溃,以便可以在故障点捕获故障转储。现在你有很大的机会弄清楚发生了什么。
所以事实上,real解决方案包括找出未处理异常的根本原因并修改代码以防止该错误发生。
除非您发布收到的确切异常消息,并且最好是完整的堆栈跟踪,否则我们无法帮助您做到这一点。但是您肯定希望保留所获得的调试信息,而不是想出一种完全忽略它的方法 - 这是实际的唯一方法solve问题。
如果你仍然坚持忽略所有善意的建议,你就会发现“把头埋在沙子里,忽略它”的做法详细信息在这里 https://stackoverflow.com/questions/1682128/global-exception-handler-for-windows-services.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)