Обработка ошибок— это процесс устранения ситуаций, когда что-то происходит не так, как надо. Проблемы, с которыми придется столкнуться, могут быть сгруппированы по двум категориям: относящиеся к окружению и созданные разработчиками.
К проблемам окружения могут быть отнесены, например, дискета, отсутствующая в дисководе, неработающая сеть или недоступная база данных. Эти события не могут быть предусмотрены заранее, но так или иначе с ними придется столкнуться.
Зачастую проблемы, созданные разработчиком, представляют собой события, которых можно было бы избежать, приняв заранее соответствующие меры предосторожности. (Причем это предпочтительнее организации ловушек для перехвата непредвиденных ситуаций.) К примерам типичных программных ошибок можно отнести деление целого числа на нуль, обращение к элементу массива с несуществующим индексом или использование необъявленной объектной переменной.
Обработка ошибок является наиболее важным аспектом создания надежных приложений. Позволить ошибке "перебраться" к пользователю — самое худшее что может сделать разработчик. Соответствующая процедура обработки ошибок исправляет те ошибки, которые могут быть исправлены, а также регистрирует неустранимые ошибки и возвращает пользователю понятное сообщение об обнаруженных ошибках.
Существует два вида обработки ошибок: исключения бизнес-правил и обработка исключительных ситуаций, связанных с проблемами компьютерных систем. Иногда вторым видом обработки ошибок пренебрегают, так как это непосредственно не связано с бизнес-требованиями.
В предыдущих версиях Visual Basic наиболее распространенный метод обработки ошибок состоял в использовании оператора On Error. Следует заметить, что одновременно с этим оператором использовался целый ряд других объектов и операторов для регистрации происходящих ошибок, для обработки ошибок, вызванных при обращении к функциям API, а также для продолжения обработки данных после завершения обработки ошибок.
Существует ряд проблем, связанных с этим методом обработки ошибок. Во многих ситуациях довольно трудно определить, какой из обработчиков ошибок используется в настоящее время. Для каждого компонента существуют собственные способы обработки ошибок: методы обработки ошибок, относящихся к СОМ-компонентам; возврат кода ошибки, возникающей при обращении к API; способы обработки ошибок, появляющихся при обработке базы данных.
Способы обработки ошибок в .NET Framework изменились. Обработка ошибок интегрирована в .NET Framework, что сделало ее совместимой со всеми языками. Выбранный метод, называемый структурной обработкой исключений (structured exception handling), хорошо известен и используется во многих других языках. В отличие от метода On Error, он предлагает гораздо более изящное решение.
В среде .NET Framework любая обработка ошибок выполняется с помощью метода структурной обработки исключений. Фактически этот метод непосредственно встроен в .NET Framework. Способ обработки ошибок с помощью оператора On Error все еще поддерживается языком VB.NET. Но, несмотря на это, выполнение метода On Error и соответствующих ему команд "в глубинах" VB.NET происходит с помощью метода структурной обработки исключений.
Обработка исключительных ситуаций настолько продуманно встроена в CLR, что работает с любыми компонентами, языками и даже на любом компьютере, не вызывая проблем, возникавших в предыдущих версиях Visual Basic. Механизм обработки исключений более устойчив, быстр и совместим со многими языками.