Правила программирования на Си и Си++

       

Сообщение об ошибке должно подсказывать пользователю, как ее исправить


Когда-то, во времена CP/M, отладчик DDT имел единственное сообщение об ошибке. Не имело значения, что вы натворили, он всегда говорил:

?

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

Неверное значение.

без намека на то, какое значение будет верным. Иногда диалоговое окно отказывается закрыться до тех пор, пока вы не введете верное значение. Иногда программа захватывает управление компьютером, и вы не можете переключиться в другое приложение, завершив то, в котором с вами случилась беда. (В Windows это "свойство"

называется системно-модальным диалоговым окном. Пожалуйста, не пользуйтесь им). И вот вы перед выбором: завершить программу, нажав Ctrl-C или ее эквивалент (если можете), отключить питание или наобум набирать числа на клавиатуре до тех пор, пока вам не удастся наткнуться на то, которое удовлетворит программу ввода данных. Вопрос состоит в том, что займет у вас больше времени: повторить последние три часа работы, которую вы не подумали сохранить перед вызовом диалогового окна, или потратить еще три часа, играя в "холодно-горячо" с диалоговым окном. Это как раз та ситуация, из-за которой у компьютеров дурная слава.

Сообщение об ошибке должно подсказывать вам, как исправить эту ситуацию, что-нибудь типа:

Числа должны быть в диапазоне от 17 до 63 включительно.

или:

Даты должны иметь формат дд-мм-гггг.

Должен быть какой-то способ (типа клавиши "help/cправка") для получения дополнительной информации, если она вам нужна. Наконец, у вас должен быть способ безопасного прекращения процесса ввода данных (типа клавиши "Выход").



Содержание раздела