On 12.07.2012 18:29, Igor Chumak wrote: > 11.07.2012 19:24, "Артём Н." пишет: >> On 11.07.2012 01:08, Igor Chumak wrote: >>> -Куть >>>>> Это если ты делаешь ошибку, которую тест уже ловит. А если ты делаешь >>>>> ошибку, которую тест еще не ловит (а она будет, и не одна), то результат >>>>> будет тот же самый, как если бы теста не было вообще. Внятная и >>>>> подробная диагностика поэтому обязательна. >>>> Я и делаю. Как-раз хотел спросить (очередной провокационный вопрос). >>>> Как организовывать обработку ошибок?>:-) >>>> Т.е., вызывается функция. Она должна вернуть код завершения. >>>> В функции м.б. вложенные функции. >>>> В функции может выполниться только часть вызовов вложенных функций. >>>> К примеру, бэкап БД не прошёл, но бэкап состояния пакетов, который делается >>>> следующим, должен быть сделан. >>>> Какой код возвращать? >>> Обычно возвращают статистику "время выполнения, сколько задач в задании >>> провалилось, сколько файлов скопировано, сколько байт прочитано, сколько >>> записано...". Если какая-то часть логики вынесена в функцию,значит >>> результат ее >>> должен что-то означать? >> Я не про показ статистики, а именно про возврат кода. > Результат работы функции не обязательно short int ;) > Если очень хочется именно _кода_ - можно вернуть % успешно выполненных задач. Но что он даст? Я же не смогу определить какие задачи провалились...
>>> Можно писать ошибки в глобальный массив, в конце работы его анализировать. >> М... Снова глобальный. :-| >> > > В общем сферическом случае использование глобальных переменных может казаться > некошерным. В частном случае - надо смотреть. Согласен. Но, всё-равно, это ещё один "выход" из функции. >>>> Код возврата, вызванной программы, видимо, не вариант. Сделал на флагах. >>>> Чтобы было понятно в какой функции произошла ошибка. Но как-то... >>>> А как правильно? >>> Как сказано было выше, у perl есть use Carp; задачу "определить в какой >>> функции >>> ошибка " поможет решить >> Про Perl буду знать. Но, увы, в моём случае: shell. > Зачем такое ограничение?? Сейчас у меня уже есть скриптик на нём. Не переделывать же на Perl, который я не знаю? К тому же, в данном случае (при попытке попробовать), ограничение лишним не будет (ведь этот модуль очень специфичная для Perl вещь, которой нет в большинстве языков). > Хотя в bash тоже есть > FUNCNAME > An array variable containing the names of all shell functions > currently in the execution call stack. И я его использую. См. скрипт в треде. > Делаем функцию die(), которая анализирует и печатает FUNCNAME. Why not? Нельзя сдыхать. В этом проблема. :-) Если бы возможно было завершить функцию, то никаких проблем. А меня интересует более общий случай. К тому же, печатать - не всегда вариант. Хотя... Может. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4ffee8cc.20...@yandex.ru