Здравствуйте, push, Вы писали:
P>Здравствуйте, lpd, Вы писали:
lpd>>У механизма исклюений есть как плюсы так и минусы. Одними из минусов кроме быстродействия являются усложнение логики(и уменьшение прозрачности кода) и увеличение связности программы — когда вызывающий код должен понимать и обрабатывать данные exceptionа из вызываемого.
P>По быстродействию я уже отписывался — им можно пренебречь. Если по этому поводу есть чего добавить нового из аргументов — то не стесняйтесь.
Ты приводил пример проекта POS-терминала, где тебе исключения помогли. Еще раз замечу, что это была не real-time система. Говорить, что быстродействием _всегда_ можно пренебречь — преувеличение. P>Насчёт увеличения связности при обработке ошибок — это естественный процесс. И ни один способ обработки ошибок не позволит избежать его. Вызывающий код так или иначе должен понимать и обрабатывать ошибки из вызываемого. Только вот увеличение связности в случае кодов возврата несоизмеримо больше, чем в случае исключений.
Исключения передают ошибку на несколько уровней вверх. Получается, что программист, разрабатывающий обработчик, должен познакомиться со всем, что в конечном счете вызывается и может выбросить исключение. По сравнению с постепенной пошаговой явной передачей ошибки на уровни вверх, или по сравнению с общими структурами данных, содержащих описание ситуации, код с исключениями получается короче, но сложнее.
Вообще, исключения в ряде случаев хороши. Но злоупотреблять ими тоже не стоит.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)