zHz00 Untitled

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

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

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

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

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

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

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

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

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

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

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

URL
*** Как всегда - тонкий узор ночных теней по стеклу. Пр...
Я не хочу быть дворцом для вечно здравствующих. ...
http://jahdivision.rinet.ru/audio_another.htm Я умер...
Обитание в реанимации тоже имеет свои прелести, которых н...
- на высоте 2 Current music: Виктор Пелевин - "...
сегодня с утра отвратительно болит голова, после завтрака...

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