У меня проблемы с неправильно поступившей библиотекой, которая выдает исключение в финализаторе, что, конечно, приводит к сбою приложения.
Чтобы избежать этого, я попытался загрузить библиотеку в свой собственный домен AppDomain, но исключение все еще всплывает на поверхность и вылетает из приложения.
Как указано в MSDN, регистрация на AppDomain.UnhandledException
не предотвращает всплытие исключения, но я весьма удивлен тем, что нет другого способа перехватить такое исключение в «подчиненном домене приложений».
Как хосты плагинов или приложения, использующие домены приложений для песочницы потенциально опасного кода, делают, чтобы остановить необработанные исключения? Действительно ли это возможно?
Примечание : у меня уже есть другой обходной путь, описанный здесь . Плохой финализатор находится на долгоживущем объекте, который, кажется, собирается только во время выключения, поэтому достаточно скрыть эту «поддельную» ошибку от пользователя. Тем не менее, я считаю этот обходной путь хрупким, поскольку он либо скрывает другие, реальные ошибки, либо рискует взорвать мое приложение, если объект был собран ранее.