Информация об изменениях

Сообщение Re[11]: Разработка на чистом C от 31.10.2016 20:09

Изменено 31.10.2016 20:11 lpd

Здравствуйте, push, Вы писали:

P>Здравствуйте, lpd, Вы писали:


lpd>>У механизма исклюений есть как плюсы так и минусы. Одними из минусов кроме быстродействия являются усложнение логики(и уменьшение прозрачности кода) и увеличение связности программы — когда вызывающий код должен понимать и обрабатывать данные exceptionа из вызываемого.


P>По быстродействию я уже отписывался — им можно пренебречь. Если по этому поводу есть чего добавить нового из аргументов — то не стесняйтесь.

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

P>Здравствуйте, lpd, Вы писали:


lpd>>У механизма исклюений есть как плюсы так и минусы. Одними из минусов кроме быстродействия являются усложнение логики(и уменьшение прозрачности кода) и увеличение связности программы — когда вызывающий код должен понимать и обрабатывать данные exceptionа из вызываемого.


P>По быстродействию я уже отписывался — им можно пренебречь. Если по этому поводу есть чего добавить нового из аргументов — то не стесняйтесь.

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