Я видел в нескольких проектах своего рода исключение catch all для перехвата всех непредвиденных исключений, поэтому приложение выиграло ' t сбой, я обычно вижу это с:
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(myUnexpectedExhandler);
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(threadExHandler);
Это хорошая или плохая практика.