none
AppDomain.UnhandledException 事件 RRS feed

  • 问题

  • Hi 各位好。
    直奔主题, 我现在有个程序设计,需要创建若干个AppDomain来运行内部指定程序。但是有个问题,我需要保证我创建的AppDomain很健壮,也就是说即便其中的一个AppDomain抛出异常,也不能影响其他AppDomain的使用,更不能导致进程的退出。
    我在MSDN上看到, 有一个AppDomain.UnhandledException 事件,这个事件在AppDomain有未处理异常的时候的确会触发,但是却不能阻止该异常继续向上抛?
    这样的结果,导致了最终我的程序崩溃了。 难道AppDomain不能自己管理异常的处理吗?
    其实我的意思很简单,我只想找一个,如果一个AppDomain异常,不会影响其他AppDomain使用的答案。
    请各位高手指点一下。
    2010年4月16日 8:00

全部回复

  • 您在 AppDomain 中运行什么样的代码?是自己写的代码还是程序集?

    异常应该在程序集级别去处理,比如一个 WINEXE,它就可以有一个 Application.ThreadException 事件。可以成功阻止 Exception 向上抛的。

    没有试过 AppDomain.UnhandledException,期待其他专家的回复。


    Mark Zhou
    2010年4月16日 8:05
  • AppDomain中运行的是一个动态加载DLL之后,反射出来的一个类。
     
    我尝试过Application.ThreadException 但是貌似没有阻止成功。
    我实在WINDOWS SERVICE下运行的,不是UI。
    另外,CONSOLE貌似也不能阻止
    2010年4月16日 8:15
  • 除了要用 ThreadException 外,还要调用 Application.SetUnhandledExceptionMode 设置一下的。
    Mark Zhou
    2010年4月16日 9:42
  • 朋友,可否贴段关键设置的代码?
    问题很紧急,提前谢谢了!
    2010年4月16日 9:56