| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Нужно ли отлавливать исключения |
| Автор: EKoshelev 4.2.2005, 08:16 |
| Я, например, никогда в своих прогах не отлавливаю исключения. Если мне нужно разделить одно число на другое я проверяю делитель на ноль. И если ноль, то выполняю какие-то действия. На сколько я понимаю это дело можно отловить с помощью try. Как вы считаете рационально я поступаю не отлавливая исключения. Может я что-то при этом теряю. Обрисуйте пожалуйста плюсы и минусы. |
| Автор: Akella 4.2.2005, 09:52 |
| Я "отлавливаю" исключения только там, где мне нужно вывести свое сообщение об ошибке, т.е. можно не только вывести сообщение о том, что программа выполнила недопустимую ошибку, а и о том, что нужно сделать, что в следующий раз такой ошибки не было. |
| Автор: Snowy 4.2.2005, 12:17 |
| Отлавливать нужно, когда вызываешь чужую функцию. Свое можно просто проверять, если уверен, что ничего не пропустишь. Когда кода много, то высока и вероятность того, что где-то то-то упустить. Кроме того ловить нужно, когда работаешь с аппаратной частью, сетью и прочими вещами, когда нет гарантии, что все пройдет путём. |
| Автор: <Spawn> 4.2.2005, 12:51 | ||
Я ставлю блок отлавливания исключений в случае, если нет 100% вероятности положительного исхода выполнения кода. Причем не обязательно для этого должны быть вызваны "не свои" функции \ методы классов - в свох же я в критичных местах генерирую исключение сам, что бы на программном слое более высокого уровня адекватно отреагировать на исключение и прервать дальнейший ход работы кода без выплнения тучи вложеных ветвлений.
В таких случаях нужно дробить сплошной код на более мелкие блоки - функции, каждый из которых укладывался бы строках в 15-ти(и его было бы легко тестировать) - это кстати одна из идей рефакторинга. |
| Автор: Akella 4.2.2005, 12:55 | ||||
| Такая ситуация. Импорт данных из Excel в твою БД. Импортируются данные в ячейку типа Number (таблица Paradox). В ячейках могут быть данные типа: 4,25 2,85 5,6 пробел8,56 -при импорте этой строки может произойти ошикба.
Я использую F1Book
|
| Автор: Alex 4.2.2005, 14:08 | ||||||
Ужас какой, а я обычно записываю все это ввиде 1 строки:
|
| Автор: Akella 5.2.2005, 11:55 |
| Вау! Нашел в справке по Delphi еще такое "floating point conversion routines". Как говориться, век живи - век учись. |
| Автор: Петрович 8.2.2005, 17:15 |
| Я не только использую try except end для обработки ошибок возникающих в вызываемых мною функциях, процедурах и методах, но и сам активно использую генерацию исключений (raise) в своих процедурах, функциях и методах. Это очень удобный механизм структурных переходов, причем не только в ошибочных ситуациях. А уж в ошибочных, это еще и возможность передать на более верхний уровень (не обязательно вызывающий) дополнительную информацию о возникшей ошибке которая может быть либо просто показана пользователю, либо проанализирована и обработана программой. |