我有一些测试需要依赖于一些无法修改的共享代码。这些共享代码有时会抛出异常,我希望能够处理所有未捕获的该异常实例,而不必在调用每个共享代码时都用try catch包装一遍(这里有多年的测试)。
同时,我也想要能够重新抛出非我所需类型的异常。
我已经尝试过:
public void init()
{
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
}
void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Logger.Info("Caught exception");
throw (Exception)e.ExceptionObject;
}
但是似乎股票单元测试框架(
Microsoft.VisualStudio.QualityTools.UnitTestsFramework
)正在处理AppDomain
并阻止我替换其UnhandledException
处理程序,或者我只是没有理解单元测试框架如何处理AppDomain
(很有可能)。 有人有什么建议吗?