11.07.2012 19:24, "Артём Н." пишет:
On 11.07.2012 01:08, Igor Chumak wrote:
-Куть
Это если ты делаешь ошибку, которую тест уже ловит. А если ты делаешь
ошибку, которую тест еще не ловит (а она будет, и не одна), то результат
будет тот же самый, как если бы теста не было вообще. Внятная и
подробная диагностика поэтому обязательна.
Я и делаю. Как-раз хотел спросить (очередной провокационный вопрос).
Как организовывать обработку ошибок?>:-)
Т.е., вызывается функция. Она должна вернуть код завершения.
В функции м.б. вложенные функции.
В функции может выполниться только часть вызовов вложенных функций.
К примеру, бэкап БД не прошёл, но бэкап состояния пакетов, который делается
следующим, должен быть сделан.
Какой код возвращать?
Обычно возвращают статистику "время выполнения, сколько задач в задании
провалилось, сколько файлов скопировано, сколько байт прочитано, сколько
записано...". Если какая-то часть логики вынесена в функцию,значит результат ее
должен что-то означать?
Я не про показ статистики, а именно про возврат кода.
Результат работы функции не обязательно short int ;)
Если очень хочется именно _кода_ - можно вернуть % успешно выполненных
задач.
Можно писать ошибки в глобальный массив, в конце работы его анализировать.
М... Снова глобальный. :-|
В общем сферическом случае использование глобальных переменных может
казаться некошерным. В частном случае - надо смотреть.
Код возврата, вызванной программы, видимо, не вариант. Сделал на флагах.
Чтобы было понятно в какой функции произошла ошибка. Но как-то...
А как правильно?
Как сказано было выше, у perl есть use Carp; задачу "определить в какой функции
ошибка " поможет решить
Про Perl буду знать. Но, увы, в моём случае: shell.
Зачем такое ограничение??
Хотя в 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 [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]