zHz00 Untitled

четверг, 05 сентября 2024
06:13 Невнятные сообщения об ошибках
Примеров таких ошибок я приводил множество, но недавно до меня дошло, что это системная проблема, и даже появилось подозрение, с чем это связано.

Впервые я встретился с описанием такой ошибки в знаменитой книжке П. Нортона Programmer's Guide to the IBM PC. В русском переводе она имела пространное название "Персональный компьютер фирмы IBM и операционная система MS-DOS". В одной из таблиц с кодами ошибок была следующая запись:

(номер кода ошибки): "Неверный формат (а чего, не говорится)".

Книжку читал я в детстве, не имея на руках ещё никакого компьютера. Меня тогда это насмешило.

Сейчас-то мне не очень смешно!

Так вот, кода ошибки недостаточно для понимания происходящего. Часто нужно указание на имя файла, на какое-то конкретное число и т.п.

Механизм кода ошибок по своей сути не предназначен для передачи дополнительной информации. Чтобы такую информацию передать, надо создавать отдельную систему, причём способную хранить значения произвольного типа.

Казалось бы, у нас есть более современный механизм: исключения. Когда возбуждается исключение, можно сделать целый об'ект и засунуть в него всё что пожелаешь. А если об'ект наследован от какого-нибудь базового CException, то там наверняка есть какой-нибудь GetAsStr(), куда можно всё записать.

И тем не менее, невнятные сообщения об отсутствующих файлах (а каких, не говорится) я получаю даже в питоне.

Что делать? Писать логи. В момент передачи кода ошибки/исключения программа точно знает, что пошло не так. Пусть выводит сообщение с контекстом ещё до того, как вернуть код ошибки/возбудить исключение. Пока ещё всё известно.

@темы: Программирование, Говнокод

URL
Кто бы сомневался... Россию-Тунис снова лицезрел на сво...
Их травили дождем. Жгли солнцем. Забивали градом. Но он...
Великодушие всем пренебрегает, чтобы всем завладеть.
Потрудился изрядно в спортзале... Все хорошо...только о...
Вот стоит только подумать, что все хорошо, обязательно ка...
У нас еще не принято, как на Западе, терпимо относиться к...

05.09.2024 в 07:23

05.09.2024 в 07:23
Failed to start because of the following error: The operation completed successfully.

Классика :)
URL

05.09.2024 в 09:50

05.09.2024 в 09:50
Hikedaya, тут другая причина. Обычно на отсутствие ошибки ставится код 0. Дальше срабатывает ветка обработки, но там код ошибки куда-то пропадает и в поле оказывается 0. Что и вызывает такое сообщение.
URL

05.09.2024 в 13:48

05.09.2024 в 13:48
zHz00, причина другая, но результат тот же - конечный пользователь с охеревшим лицом лица.
URL
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail