我目前正在编写一个托管多个模块的服务器。服务器在单独的 AppDomain 中运行每个模块。我想要实现的是异常隔离,即当一个模块抛出异常时,我不希望整个进程终止,只是这个特定的 AppDomain。我知道当不同线程中的所有未捕获异常都被吞没时,我可以告诉 CLR 回退到旧行为 (.NET 1.0)。然而,这并不是最“优雅”的解决方案。
最佳答案
如何订阅这个事件:
AppDomain.CurrentDomain.UnhandledException
您必须将 ExceptionObject 属性从 Object 类型转换为 Exception。
希望对您有所帮助。
关于c# - 在 C# 控制台应用程序中处理未捕获的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/228817/