![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Пишу код. И ВНЕЗАПНО приходит мысль - а стоит ли вообще расписывать все проверки\ошибки etc.? В данный момент код вида:
Код:
P.S. Это dll, есть шанс, что попадет в общий доступ без сорса. P.P.S. Тема не относится к разделу Delphi, поскольку обсуждается не код, а сам тип программирования.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#2 | ||
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
![]() Цитата:
Цитата:
1)На сколько часто будут возникать ошибки 2)Какие их последствия 3)Распространненость программы и ее конечные пользователи. Все эти параметры нужно взвесить. Но, имхо, все же стоит. Последний раз редактировалось Levsha100; 16.02.2010 в 21:31. |
||
![]() |
![]() |
![]() |
#3 | ||||
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]() Цитата:
P.S. А если подумать над самой сутью вопроса? Цитата:
Цитата:
Цитата:
А вот насчет распространенности не знаю. Допишу, а там посмотрим...
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ Последний раз редактировалось Alex Cones; 16.02.2010 в 21:35. |
||||
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
как вариант выдавать код ошибки... а по ним отдельный мануальчик, потом.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#5 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]() Цитата:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
![]() |
![]() |
![]() |
#6 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,836
|
![]()
Странный код. Проще сделать отдельно функцию, генерирующую код ошибки, а далее, список стринговых констант - описание ошибок по коду.
И не придётся 100 раз писать одно и тоже: Код:
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
![]()
Не знаю как в делфи, но в Java система исключений позволяет обработать практически любые ошибки, даже без знания того что это вообще была за ошибка, но при этом сохраняя возможность залогировать ошибку.
Тем самым для самых распространенных возможных ошибок писать индивидуальные обработчики, а для остальных - универсальные.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
Алекс, считаю что нужно, ибо всетаки нужно ошибки обработать...а не надеятся на авось...
кстати Byte бесмысленно, лучше уж Integer(LongInt для стабильности) ибо один фиг регистр eax идет...а при byte просто его часть(al скорее всего) так что проверять и проверять ![]() разве что можно оптимизировать код. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#9 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
![]()
Тема видимо о защите от дурака? Смотря с чем работаете. Лучше конечно сделать в DLL безопасные и небезопасные функции, вторые быстрее будут работать на пару сотен тактов(конечно это зависит от конкретной платформы итд и от количество обработчиков ошибок).
Таким образом предоставите пользователям выбор каким путем пойти. А что касается программы то опять же смотря что является объектом и кто будет управлять этим объектом - программист(в случае с вашей ДЛЛ) или пользователь. Допустим если вы пишите сервисный драйвер(не устройства) - стоит позаботится о обоих видах функций. В вашем случае можно обойтись небезопасными функциями так как оперировать объектом будет программист. В случае если что то пишется для пользователей - лучше использовать безопасные функции, т.к. это все же пользователи. Я так же считаю что нельзя лишать программистов права на использование небезопасных функций при условии что объектом является нечто, сильно-зависимое от производительности вашего кода.
"Тяжело в учении, легко в бою" - А.В. Суворов
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
Мне бы не понравился, например, антивирус, который вылетает с ошибкой типа "Cannot create socket" при отключенном интернете, пытаясь обновить базы с сайта.
Необработанные исключения в общем случае легко приводят к краху всей программы. Причем программа не обязательно "умрёт", а просто будет непонятно как работать. Если Вас это не пугает, то не заморачивайтесь на счет этого. А если уж решите так оставить, то не забывайте в своём коде ловить чужие исключения, чтобы программа не рухнула в непонятном месте, а функция как и полагается вернула код/текст ошибки. Функции с таким способом оповещения об ошибках должны гарантировать, что из них исключения не вывалятся, а иначе во всём этом нет смысла. Так же если будет таки переход на систему исключений, то так же нужно и внутри своих функций ловить исключения. Каждая функция должна возвращать фиксированный набор исключений, а не так, что сейчас мы внутри этой функции используем библиотеку №1, которая может выбросить такие то исключения, а завтра перешли на библиотеку №2 и бросаемся совсем другими исключениями. Опять же, не пойманное исключение - потенциальная опасность нарушения работоспособности программы и утечек памяти. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SAPE! Стоит ли? | Web-Gangsta | Свободное общение | 15 | 15.01.2010 01:23 |
Стоит ли переходить с D7 на D9? | Alex Cones | Софт | 12 | 18.09.2009 10:52 |
Стоит ли начинать с С++ | V.I.P | Свободное общение | 7 | 20.02.2009 07:34 |
Стоит ли изучать С#? | Игорь007 | Свободное общение | 30 | 20.06.2008 14:08 |