Текущий архив: 2005.08.14;
Скачать: CL | DM;
Вниз
try or if Найти похожие ветки
← →
Alexander Panov © (2005-07-21 20:11) [40]ki11er (21.07.05 19:49) [39]
ANB © (21.07.05 19:47) [38]
Согласен, здесь был несколько неудачный пример.
Что касается примера из [33], то [35] можно считать просто отмазкой(софистикой).
← →
ki11er (2005-07-21 20:20) [41]Ок. Пора с этим заканчивать, а то уже начало переходить в стадию флейма ;-) Всем спасибо.
← →
ANB © (2005-07-21 20:23) [42]Мое ИМХО. Исключения штука полезная, но и пихать их где не попадя я не люблю, так как делфа падает при отладке, если флажек не снять. А если снять - то замучаешься искать какую нибудь всплывшую ошибку. Если что то можно проверить без исключения, то зачем на него нарываться ? Вот в примере автора сабжа ничего не понимаю - если в поле разрешен ввод нецелых чисел - зачем пытаться запихать его в целое ? А если нужно определить, что после запятой ничего нет, так это намного проще делается. Корректность ввода числовых данных в едите еще проще делается - юзаешь rxCurrencyEdit или rxCalcEdit. Там даже калькулятор встроенный есть. Все красиво и удобно.
← →
Alexander Panov © (2005-07-21 20:25) [43]ki11er (21.07.05 20:20) [41]
Ок. Пора с этим заканчивать, а то уже начало переходить в стадию флейма
В следующий раз аргументы подбери посерьезнее.
← →
Alexander Panov © (2005-07-21 20:36) [44]ANB © (21.07.05 20:23) [42]
Спор возник из-за высказываний [27] и [29].
В 27 утверждалось, что без исключений можно обойтись всегда.
В 29 - Borland навязывает исключения.(...так как здесь почти все построено на исключениях и они просто навязываются кодеру...)
На самом деле каждый сам выбирает, что ему использовать.
Если ki11er считает, что программа должна вылетать по ошибке - это его право.
Я считаю, что пользователь должен иметь возможность самостоятельно завершать программу.
Знаю я одного разработчика, у которого программы вылетает без обработки ошибок.
Программа не один десяток тысяч строк кода. Причем на Си.
Желаю с таким же энтузиазмом повылавливать ошибки, когда выскакивают очень информативные AV.
А флейм действительно ни о чем.
← →
Eraser © (2005-07-21 20:39) [45]имхо всё должно быть вмеру и к месту (нужному)). Защещённые блоки и ф-я GetLastError не зря придуманы.
← →
ki11er (2005-07-21 21:39) [46]2 Alexander Panov:
>В следующий раз аргументы подбери посерьезнее.
Это ты о чем? Мои аргументы достаточно сильные.
>В 27 утверждалось, что без исключений можно обойтись всегда.
Именно так. По-твоему до тех пор, пока не появились исключения и программирования не было? Для справки: программирование появилось гораздо раньше, чем придумали исключения (те исключения о которых здесь идет речь, просьба к словам не цепляться)
>В 29 - Borland навязывает исключения.(...так как здесь почти
>все построено на исключениях и они просто навязываются
>кодеру...)
Да, навязывает. В качестве доказательства обратного попробуй написать программу, которая открывает файлстрим (используя стандартный TFileStream) и корректно обрабатывает ошибки, не используя при этом конструкции try... Если у тебя это получится сделать с той же легкостью, что и с использованием try, то это будет небольшой аргумент в твою пользу. А если серьезно - я уже говорил выше - открой исходники и посмотри. Почти вся обработка ошибок - на исключениях. Поэтому обойтись без них практически невозможно. Разве что писать на голом АПИ. Но зачем тогда Delphi нужен? ;-)
>Если ki11er считает, что программа должна вылетать по ошибке -
>это его право.
Я так считаю? :-F Почитай мои посты. Или я не по русски пишу...
Говорил, говорю и буду говорить. Все ошибки должны обрабатываться. Причем с выдачей максимума информации о возникшей проблеме и с рекомендациями пользователю, что ему делать дальше.
← →
Alexander Panov © (2005-07-21 21:43) [47]ki11er (21.07.05 21:39) [46]
Все ошибки должны обрабатываться. Причем с выдачей максимума информации о возникшей проблеме и с рекомендациями пользователю, что ему делать дальше
Вот с этим абсолютно согласен;)
← →
ANB © (2005-07-21 21:48) [48]Че то не туда заворачиваем. Ну есть внутренние исключения. Для их обработки придумали try except (правда, он не всегда помогает). Есть в этом и плюсы. Например, если открываешь кверю, а в запросе ошибка, то без исключений мне ВСЕГДА придется проверять, а открылась ли она. Если ошибки возможны - я их перехвачу и обработаю. Если ошибки редки и фатальны для дальнейшего исполнения кода - оставлю обработку по умолчанию.
Суть не в этом. Автор сабжа спрашивает : генерить ли исключения специально, чтобы перехватить, или работать по if. Мое мнение - лучше через if. А исключения оставить на фактические ошибки.
← →
ki11er (2005-07-21 21:51) [49]Вот кстати, цитата из требований которые я писал для "новобранцев":
5. Сообщения об ошибках ОБЯЗАТЕЛЬНО должны содержать 1. Более-менее понятную пользователю информацию о том, что происходит; 2. Рекомендации пользователю, что он ему делать дальше; 3. !!! Достаточно информации для того, чтобы разработчик программы мог определить по сообщению место ошибки (именно место ошибки, а не место из которого отобразилось сообщение !!!) в коде программы с точностью до строчки.
← →
Alexander Panov © (2005-07-21 21:57) [50]ki11er (21.07.05 21:51) [49]
Это консенсус;)
← →
TUser © (2005-07-22 07:35) [51]Это филосовский вопрос. try безусловно лучше в тех случаях, когда не известно, какие именно ошибки могут возникнуть. Особенно, если в процедуре ты взаимодействуешь с чем-то внешним (устройством, файлом, чужими данными и т.д.). if удобен, если ты заранее знаешь, что за ошибка возможна (например, выход индекса за пределы массива).
Скорее правильный вопрос, не что лучше, а где. Вот допустим у тебя есть "ядро" приложения - там всякие низкоуровневые дела реализованы. Оно когда-то отлажено, и то, что там возникает ошибка, обычно малоинформативно. Там не надо делать try. А вот на уровень выше, там где ты работаешь с конкретными данными, есть смысл записать логи, чтобы потом проеврить, что с этими данными не так. Впрочем, пяткой в грудь себя бить не буду.
Страницы: 1 2 вся ветка
Текущий архив: 2005.08.14;
Скачать: CL | DM;
Память: 0.57 MB
Время: 0.041 c