Завершение попытки захвата вокруг всего приложения будет означать, что приложение завершит работу при ошибке.
При использовании метода «попробуй и поймай» каждый метод трудно поддерживать.
Рекомендуется использовать специальные попытки try для блоков кода, которые будут генерировать определенные типы исключений, такие как FormatException, и оставлять общую обработку исключений для обработчиков событий уровня приложения.
try
{
//Code that could error here
}
catch (FormatException ex)
{
//Code to tell user of their error
//all other errors will be handled
//by the global error handler
}
Опыт покажет вам, что может пойти не так. Со временем вы заметите, что ваше приложение часто выдает, скажем, исключения ввода-вывода при доступе к файлу, чтобы потом можно было их перехватить и предоставить пользователю больше информации.
Глобальные обработчики ошибок перехватят все остальное. Вы используете их, подключая обработчики событий к двум событиям System.Windows.Forms.Application.ThreadException ( см. MSDN ) и AppDomain.UnhandledException ( см. MSDN )
Имейте в виду, что исключения "Недостаточно памяти" и StackOverflowException не могут быть обнаружены при перехвате ошибок.