질문을 다루는 주제가 많이 있습니다. 그러나 그럼에도 불구하고 나는 문제가있다.AppDomain 처리되지 않은 예외
나는이 같은 새로운 AppDomain
에 어셈블리를로드 :
public void Run()
{
//There's the problem.
//As Panos Rontogiannis mentioned the thread is created in default AppDomain
new Thread(RunApp).Start();
}
private void RunApp()
try
{
AppDomain.CreateDomain("domain name").ExecuteAssembly("path to assembly");
}
catch (Exception _e)
{
MessageBox.Show("Unhandled Exception.\n" + _e);
}
}
를로드 어셈블리의 Main 메서드에서 나는 UnhandledException
이벤트에 내 핸들러를 구독 :
AppDomain.CurrentDomain.UnhandledException += handleException;
핸들러를 자체 :
를public static void handleException(object a_s, UnhandledExceptionEventArgs a_args)
{
var _e = (Exception)a_args.ExceptionObject;
//Static loger class method
Loger.WriteError(_e.GetType().ToString(), _e.Message, "default solution");
}
하지만 어디에서나 예외가 throw됩니다. 그는 핸들러가 관여하지 않는 어셈블리를로드했습니다. 예외 (default)는 AppDomain
(첫 번째 try{} catch{}
)입니다.
IMHO **이 대답은 코멘트 여야합니다 ** – Kiquenet