Обработка ошибок в программе

Очень неприятно, когда при сбое программы появляется сообщение на английском языке. Пользователю оно ни о чем не говорит, а только пугает и раздражает. Поэтому в рабочей программе надо иметь средства для подавления сообщений об ошибках. А для того, чтобы потом разобраться в проблеме, используются специальные лог-файлы, куда эти сообщения и записываются. Прочитать их потом самому гораздо предпочтительнее, чем слушать невнятное бормотание по телефону. К тому же, лог-файл можно выслать по электронной почте, что тоже удобно.

Полноценный обработчик ошибок мы делать не будем, обойдемся простейшим. Если понадобится, несколько команд в готовый файл добавить очень легко. Команда обращения к этому файлу on error do prods\sos в файле с настройками уже есть, осталось создать sos.prg



Всего две строчки, ничего сложного. Нижняя строка закомментирована, то есть пока работать не будет. Вовсе ни к чему, чтобы программа завершалась в процессе отладки, а вот при передаче ее клиенту звездочку следует убрать. Если ошибка появляется, продолжение работы, как правило, невозможно, и в завершении программы нет ничего плохого.

Но есть еще одна ситуация, которую следует контролировать отдельно. При запуске программы можно проверять, все ли файлы, необходимые для ее работы, существуют. Смысл этой проверки в том, что некоторые файлы, например индексные, очень легко создать. Можно создать и таблицы, если где-то хранится их структура. Если программа только что установлена, это имеет смысл, поскольку базы пусты.

Такую проверку производит процедура test.prg



В данном случае активные действия не предусмотрены. Процедура просто выдает сообщение, и препятствует дальнейшей работе программы, которая все равно невозможна. В данном случае отслеживается ситуация, когда папка или файла не скопированы, а перемещены. Windows, как известно, при перетаскивании файлов и папок на другой диск создает копии, а в пределах одного диска - перемещает их, так что ошибка возможна, и устранима самим оператором.

 

 
К оглавлениюк следующей статье