Надстройка ArcGIS 10, над которой я работаю, довольно проста - всего лишь элемент управления инструментом и закрепляемое окно. Я обрабатываю конкретные исключения, которые, как я ожидаю, возникает в исходном коде и выбрасывает все остальное, но как лучше всего обрабатывать эти неожиданные исключения в структуре надстроек?
В настоящее время я просто делаю catch (System.Exception ex)
и показываю его в MessageBox в каждом методе, у которого нет метода более высокого уровня, с которым я мог бы справиться, но это не кажется лучшей практикой (и, конечно, FxCop скулил об этом).
Есть ли какая-либо возможность в структуре надстроек ArcGIS 10 для подключения обработчика исключений верхнего уровня, например, к событиям Application.ThreadException
или AppDomain.UnhandledException
?
Видя, что надстройки - это просто библиотеки классов, а не приложения, не имеющие доступа к коду запуска базового приложения (из того, что я понял, эти события нужно подключать очень рано в процессе запуска), я думаю, что нет, но я подумал Я бы спросил, есть ли у экспертов какие-либо предложения о том, как «неожиданные» исключения должны обрабатываться в надстройках.