[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Несколько вопросов вразброс



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?
Нельзя сдыхать. В этом проблема. :-) Если бы возможно было завершить функцию, то
никаких проблем. А меня интересует более общий случай. К тому же, печатать - не
всегда вариант. Хотя... Может.



Reply to: