我目前正在编写一个托管多个模块的服务器。服务器在单独的AppDomain中运行每个模块。我想要实现的是异常隔离,即当一个模块抛出异常时,我不希望整个进程终止,只是这个特定的AppDomain。我知道,当吞下不同线程中所有未捕获的异常时,我可以告诉CLR回退到旧行为(.NET 1.0)。但是,这不是最“优雅”的解决方案。
答案 0 :(得分:7)
订阅此活动怎么样:
AppDomain.CurrentDomain.UnhandledException
您必须将ExceptionObject属性从Object类型转换为Exception。
希望有所帮助。