error handling
От: jyuyjiyuijyu  
Дата: 08.04.11 06:33
Оценка:
Всем привет.
вопрос связанный с обработкой ошибок без исключений
допустим есть некая функция "сервер" и ряд функций "клиентов" обращающихся к ней прямо или косвенно
вставить ли обработку некорректного параметра в функцию "сервер" и разрешить
всем остальным функциям в системе не проверять передаваемое значение аргумента
или вставить проверку в каждую функцию "клиент" перед вызовом а в функции "сервер"
проверку не делать ?
если эффективно то надо проверять в каждом "клиенте" если красиво то
ряд вызовов будет "холостых" пока до "сервера" вызов дойдет и он решит что параметр ошибочный
пока стек размотается до "клиента" обратно а ведь этого можно избежать
если вставлять проверки в "клиентах" но так проверок больше некрасиво получается
вопрос не стоит надо ли проверять параметры пришедшие из "внешнего мира"
вопрос как программировать обработку ошибок внутри ?
Re: error handling
От: okman Беларусь https://searchinform.ru/
Дата: 08.04.11 08:56
Оценка:
Здравствуйте, jyuyjiyuijyu, Вы писали:

J>Всем привет.

J>вопрос связанный с обработкой ошибок без исключений
J>допустим есть некая функция "сервер" и ряд функций "клиентов" обращающихся к ней прямо или косвенно
J>вставить ли обработку некорректного параметра в функцию "сервер" и разрешить
J>всем остальным функциям в системе не проверять передаваемое значение аргумента
J>или вставить проверку в каждую функцию "клиент" перед вызовом а в функции "сервер"
J>проверку не делать ?
J>если эффективно то надо проверять в каждом "клиенте" если красиво то
J>ряд вызовов будет "холостых" пока до "сервера" вызов дойдет и он решит что параметр ошибочный
J>пока стек размотается до "клиента" обратно а ведь этого можно избежать
J>если вставлять проверки в "клиентах" но так проверок больше некрасиво получается
J>вопрос не стоит надо ли проверять параметры пришедшие из "внешнего мира"
J>вопрос как программировать обработку ошибок внутри ?

Абстрактно.
Проверка значений должна выполняться в функции, которая с этими значениями работает.
Это, помимо прочего, устраняет дублирование. Если логика работы функции изменится, не
придется переписывать код клиентов. И потом, что значит "красиво" ? Кидать в функцию
значения без проверки на клиенте, полагаясь на то, что все аргументы корректны ?
Обработку некорректных значений в любом случае надо делать (исключения бывают, разумеется), но
тогда лучше делать это централизованно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.