Форум сайта python.su
>Как будет “fail silently” по-русски?
“сломаться тихо/безшумно”
py.user.nextкак раз наоборот
“тихо сбоить”
имеется в виду, что если происходит ошибка, это не должно оставаться незамеченным
py.user.nextхорошая практика, да
Errors should never pass silently.
FishHookэто и есть пример “fail silently”
Django проглотит без исключений.
Отредактировано bismigalis (Апрель 14, 2013 18:07:31)
Офлайн
Lexanderесть
Нет такого правила.
Lexanderи что дальше ?
Я привел пример, где такое поведение практикуется.
Lexanderзапись в лог в случае ошибки - это не “fail silently”
Кроме шаблонизаторов, система логгирования тоже работает в режиме fail silently.
Офлайн
py.user.nextЕсть, но оно прикладное.
есть
py.user.nextНе запись в лог, а “система логгирования”.
запись в лог в случае ошибки - это не “fail silently”
Офлайн
bismigalisучитывая что подразумевается продолжение работы, то “сломаться” не совсем точно отражает. Я нашёл как лучше превести в данном контексте fail - “сбой, сбоИть”. Тогда превод “сбоИть незаметно”
“сломаться тихо/безшумно”
Офлайн
Lexanderоно настолько же общее, насколько общ отказ от goto
Но не распространяется на все программирование, поэтому не является общим, как вы утверждаете.
Lexanderв чём же функция системы логирования (журналирования), если не запись в журнал ?
Не запись в лог, а “система логгирования”.
Lexanderчтобы программа оставалась неправильно, а выглядела красиво
А если что-то в лог не записалось, то это такую ошибку игнорируют.
Lexanderя не знаю, про что речь
Знаете зачем ее игнорируют?
Отредактировано py.user.next (Апрель 16, 2013 07:44:58)
Офлайн
py.user.nextПринцип применим не к функции системы, а ко всей системе.
в чём же функция системы логирования (журналирования), если не запись в журнал ?
py.user.nextНет. Система логгирования - это вспомогательная система, без которой работоспособность системы в целом не должна страдать. В том числе, если вспомогательная система сбоит.
чтобы программа оставалась неправильно, а выглядела красиво
py.user.nextЕсли при записи в лог-файл возникает ошибка, ее следует проигнорировать в подавляющем большинстве систем.
пример конкретный приведи
Офлайн
Lexanderнужно вернуть код ошибки
Если антивирус заблокировал лог-файл, если возникла аппаратная ошибка, система логгирования никак не может решить эту проблему.
Lexanderречь идёт про несообщение об ошибке
А сообщить об ошибке можно только путем крэша
Lexanderи она остаётся неисправленной
Поэтому такую ошибку игнорируют.
Lexanderнет, программа должна сообщить об этом программисту, если это случай внутреннего сбоя программы, а не результат внешнего воздействия (если определить не может, то это внутренний сбой)
По вашему, если ошибка происходит при записи в лог-файл, то программе следует бы просто вылетать с ошибкой?
Отредактировано py.user.next (Апрель 19, 2013 08:27:04)
Офлайн
py.user.nextКуда? Кто ее обрабатывать будет?
нужно вернуть код ошибки
py.user.nextВот потому и не сообщают.
речь идёт про несообщение об ошибке
py.user.nextДа. И что с того?
и она остаётся неисправленной
py.user.nextЕще раз. Лог-файл - это последняя инстанция. Как вы собираетесь сообщать программисту?
программа должна сообщить об этом программисту, если это случай внутреннего сбоя программы, а не результат внешнего воздействия (если определить не может, то это внутренний сбой)
Офлайн
LexanderНе обязательно ее обрабатывать, надо о ней сообщить.
Куда? Кто ее обрабатывать будет?
Офлайн
FishHook… если есть такая возможность. Если ее нет - в соответствии с алгоритмом, например, fail silently.
Не обязательно ее обрабатывать, надо о ней сообщить.Куда? Да хоть в консоль, хоть в MessageBox.
Офлайн