|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
LRДядя Коляодин програмист мне доказывает что коды лучше потому что так Джоэл сказал что-то не смог нагуглить, кто это такой? тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 09:49 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Сон Веры Павловны тынц Спасибо! Т.е., он (небезосновательно) приравнивает исключения к goto’s и предлагает "нудный" но надежный способ избавится от них. Joel SpolskyIn C/C++/Java style languages one way you can handle errors is to use the real return value for a result status, and if you have anything you want to return, use an OUT parameter to do that. This has the unforunate side effect of making it impossible to nest function calls, so result = f(g(x)) must become: Код: plaintext 1. 2. 3. 4. 5.
This is ugly and annoying but it’s better than getting magic unexpected gotos sprinkled throughout your code at unpredictable places. Кстати, оказывается, он еще и сооснователь Stack Overflow, пожалуй, самого эффективного ресурса (типа "вопрос-ответ") для разработчиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 10:33 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
LR, Со времен той статьи добавили спецификации исключений в деклараторы функций. Часть возражений Джоеля это снимает. Где то были еще мнения других важных людей. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 10:47 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
LRнебезосновательно) приравнивает исключения к goto’sда бросьте вы. Ерунда. Тут и обсуждать нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 10:55 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
по мимо немедленного возврата в точку обработки исключения. Само исключение сообщает нам о том, где это исключение было вызвано, возвращает стек и прочую вспомогательную информацию и может вернуть в общем то любые данные, если тип исключения пользовательский. А возврат -1 мне не говорит ровным счетом не о чем. Так как цепочка вызова могла быть огромной, да и в самом методе, не понятно, где собака зарыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 11:01 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
LRСпасибо! Т.е., он (небезосновательно) приравнивает исключения к goto’s и предлагает "нудный" но надежный способ избавится от них. У него еще и вот это: They create too many possible exit points for a function . To write correct code, you really have to think about every possible code path through your function. Every time you call a function that can raise an exception and don’t catch it on the spot, you create opportunities for surprise bugs caused by functions that terminated abruptly, leaving data in an inconsistent state, or other code paths that you didn’t think about. - я боязнь выделенного жирным встречал только у дельфистов, у которых до 2010-й версии RAD Studio не было оператора возврата из метода, и вследствие этого для них одна точка возврата - аксиома. А всё остальное даже не знаю, как комментировать. Программирование - это, в общем-то, такая штука, где всегда приходится really have to think about, и неважно, о чем - о возрате из функции, возможных исключениях, или еще о чем-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 11:08 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Petro123Ерунда. Тут и обсуждать нечего. Говорят, гризли - самый опасный зверь в Америке. Ерунда. Тут и обсуждать нечего. Я бросил в него восемь камней, а он мне даже ничего не сделал (в отличие от смотрителя зоопарка). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 11:24 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
LR, )))) Ну дак тебе 6 мемберов сказали что он не опасен) Тогда ты белая ворона). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 11:32 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, раньше считалось, что те, кто используют GoTo деформируется профессионально. А сейчас идет обратная тенденция. =) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 12:11 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Исключения в C# реализованы через SEH. Сильные и слабые стороны этого механизма известны: достоинства: * позволяет писать удобный код, без бесконечных проверок if (f(x) == ERROR)... * позволяет ловить нештатные ошибки * позволяет финализировать блок кода * позволяет корректировать ошибки* недостатки * нагрузка на компилятор при создании try блока * тяжёлый нештатный выход из try блока - исключение или goto без leave Соответственно и область применения должны быть с учётом достоинств и недостатков. Обычный код с обычными действиями пользователей должен проверяться на ошибки. Нештатные вещи (допустим - открыли существующий файл, но пока диалог закрывался, файл удалён или заблокирован другим процессом) обрабатываются через исключения. Что касается того, что выбрать самому, то кроме выбора "исключение или код ошибки" есть и другие варианты. Например, тип Nullable - приятная фишка, что бы можно было возвращать значения через Return, но иметь возможность показать, что что-то пошло не так и избежать как громоздкого кода, так и исключения. --------------------- * - а кстати, много народу знает об этом? Если, к примеру, было деление на 0, можно в обработчике скорректировать ошибку, вернуться в точку выполнения, и продолжить выполнять код. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 12:35 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
13th* - а кстати, много народу знает об этом? Если, к примеру, было деление на 0, можно в обработчике скорректировать ошибку, вернуться в точку выполнения, и продолжить выполнять код. Похоже, что в C# аналога нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 12:59 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Petro123Дядя Коля, Какая смешная просьба). У молодежи же нет авторитетов). Это в раздел ПТ надо). у этого авторитеты те кто книги пишет причем только заграничные ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 13:31 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
hVosttДядя Коля, При чём тут мнение? Не надо топить или не топить за исключения. Если в языке есть исключения, надо их использовать. Если нет, то коды. Это не вопрос религии или мнения. Если в компанию в разработку на C# придёт хоть трижды авторитетный человек со своими кодами вместо исключений, то пойдёт сразу на рынок труда со всеми своими монатками и дебильным мнением. на шарпе как раз, он также считает про людей юзающих исключения (так же в смысле что они унтерменши в профессиональном плане) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 13:32 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Дядя Коляна шарпе как раз, он также считает про людей юзающих исключения (так же в смысле что они унтерменши в профессиональном плане) Лучше ориентироваться на Рихтера, он всё конкретно по полочкам разложил. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 13:39 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
hVosttЕсли в языке есть исключения, надо их использовать. Если нет, то коды. Это не вопрос религии или мнения. Странно, раньше ты был другого мнения 20145877 hVosttИсключения не должны использоваться в ситуациях, которые ты ожидаешь. Например, некорректный ввод пользователя не должен порождать исключение. ... Возврат и обработка ошибок не стоит делать через механизм исключений. Об этом написано у многих уважаемых авторов. И с опытом приходит понимание почему. ... Я понимаю, что такие проверки делать лень, проще поймать обобщённый Exception и записать его в лог. Но это не показатель, ни качественной разработки, ни профессионализма. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 13:48 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Dima T, не вижу, как одна цитата противоречит другой ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 13:50 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Всё это фигня... Следует возвращать OperationResult да и вообще писать в функциональном стиле ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 14:40 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
LR13th* - а кстати, много народу знает об этом? Если, к примеру, было деление на 0, можно в обработчике скорректировать ошибку, вернуться в точку выполнения, и продолжить выполнять код. Похоже, что в C# аналога нет... Если под аналогом понимаются exception filters, то в 6.0 они появились , и вполне можно написать вот такое: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 15:25 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
skyANAВсё это фигня... Следует возвращать OperationResult да и вообще писать в функциональном стиле а какие аргументы? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 15:40 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Dima ThVosttЕсли в языке есть исключения, надо их использовать. Если нет, то коды. Это не вопрос религии или мнения. Странно, раньше ты был другого мнения 20145877 hVosttИсключения не должны использоваться в ситуациях, которые ты ожидаешь. Например, некорректный ввод пользователя не должен порождать исключение. ... Возврат и обработка ошибок не стоит делать через механизм исключений. Об этом написано у многих уважаемых авторов. И с опытом приходит понимание почему. ... Я понимаю, что такие проверки делать лень, проще поймать обобщённый Exception и записать его в лог. Но это не показатель, ни качественной разработки, ни профессионализма. Мда. Чукча не читатель? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 15:56 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
skyANAВсё это фигня... Следует возвращать OperationResult да и вообще писать в функциональном стиле Типа HttpResponseMessage? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 16:01 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
skyANAOperationResult Как-то рефакторили блок с этими Result-ами. Из-за того, что исключительные ошибки также в Result складывались. Когда кому-то надоело ковыряться и обрабатывать то, что непонятно как обрабатывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 16:02 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Марксизм не догма, а руководство к действию. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 16:04 |
|
Исключения vs коды возвратов
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныЕсли под аналогом понимаются exception filters, то в 6.0 они появились , и вполне можно написать вот такое: Лично я имел ввиду именно возобновление исполнения. exception filters - часть этого механизма. В твоём примере делается повторный вызов. В С++ - возобновление с точки исключения. Прямых аналогов, насколько я знаю, нет нигде. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 16:33 |
|
|
start [/forum/topic.php?fid=20&msg=39670845&tid=1399295]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 317ms |
total: | 557ms |
0 / 0 |