Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.11;
Скачать: CL | DM;

Вниз

try ... except   Найти похожие ветки 

 
Separator ©   (2005-11-20 13:55) [0]

Что-то много нарду стало, считающих, что try ... except(finally) решение всех их проблем, что это защита от ввода пользователем неправильных параметров и т.д.


 
GuAV ©   (2005-11-20 14:00) [1]


> Что-то много нарду стало, считающих, что try ...
> except(finally) решение всех их проблем

Кто сказал ?


> что это защита от ввода пользователем неправильных
> параметров и т.д.

Нет, защита - это поднятие исключение, а try ... except(finally) - это уже обработка ситуации неправильного ввода.


 
Separator ©   (2005-11-20 14:06) [2]

Толи я от жизни отстал, то ли я многого не понимаю. Просто что-то меня зацепил этот пост http://delphimaster.net/view/2-1132428043/
Но я всегда считал, что чем меньше используешь try except, тем лучше. И когда можно обойтись без него, то обхожусь. Единственно, когда в критических местах ставлю try .. finally, для очищения ресурсов.

Просветите меня, правильно ли я поступаю или нет?


 
Qwertykz   (2005-11-20 14:26) [3]

Но в любом случае это помогает в некоторых случаях?


 
default ©   (2005-11-20 14:27) [4]

ну а ты сам как думаешь лучше бороться с причиной или следствием?
путь без блоков try это путь борьбы с причиной, с ними -со следствием
когда не удаётся загасить причину приходиться бороться со след-ем и использовать блоки try всё зависит от задачи и от твоей головы


 
default ©   (2005-11-20 14:37) [5]

перекрывай  в потомке
procedure CreateParams(var Params: TCreateParams);


 
default ©   (2005-11-20 14:37) [6]

мать, не туда:)


 
Separator ©   (2005-11-20 14:57) [7]

Ну в общем то я так и думаю, но откуда появляются люди с уверенностью утверждающие, что путь try лучший?


 
sniknik ©   (2005-11-20 14:58) [8]

default ©   (20.11.05 14:27) [4]
ну это не совсем борьбы со следствием, это реакция на него. (борьба была бы если бы везде пустышки try ... except {nothing} end; стояли..)

а так как предугадать причину зачастую невозможно ... то следствие, обработка и реакция практически единственный приемлемый вариант.

к примеру предугадайка... ;)

ADOConnection1.Close;
ADOConnection1.ConnectionText:= Edit1.Text;

ADODataSet1.CommandText:= Edit2.Text;
ADODataSet1.Open;
...
получится заранее (только все варианты и чтоб правильно без ошибок), сам лично тебе памятник при жизни поставлю ;о)).


 
default ©   (2005-11-20 14:59) [9]

Separator ©   (20.11.05 14:57) [7]
они тебе это доказали?:)нет!у тебя есть основания избрать другой путь, они не дали тебе оснований для пересмотра твоего пути так что пока можешь не беспокоиться;)


 
sniknik ©   (2005-11-20 15:00) [10]

Separator ©   (20.11.05 14:57) [7]
в обшем ничего не бывает, давай конкретный случай, и будем разбирать, что для него будет лучше.


 
Igorek ©   (2005-11-20 15:01) [11]

Исключительные ситуации надо употреблять по делу. А именно - тогда, когда вы не знаете какая ошибка может произойти в вашем коде. Или код сторонний и его апи предусматривает исключения. Если можно разрулить ситуацию без исключений, то лучше так и сделать.
Беда исключений в том, что они сразу сворачивают стек до обработчика. И возникает неочевидное поведение (напр. вы не предусмотрели такой порядок вызова деструкторов). Потому в стеке вызовов надо как можно ближе размещать обработчик и место возбуждения исключения. (имхо)


 
default ©   (2005-11-20 15:03) [12]

sniknik ©   (20.11.05 14:58) [8]
согласен, заметьте я сказал что когда нельзя устранить причину тогда блоки try никакого проиворечия:) когда можно и целесообразно устранить - устраняем причину, если нельзя устранить или нецелесообразно устранять(например, из-за большой сложности) то используем try


 
sniknik ©   (2005-11-20 15:18) [13]

если считать за конкретику
Separator ©   (20.11.05 08:40) [13]
из ссылки.
> .... одно иг правильных решений:

то 2 дырки ты там допустил (чего не случилось бы при  решении с try except)

первое в едите с этапа разработки мог остатся текст - неучтено,
второе настырный юзер щелкнет правой кнопкой мыши по едиту и нажмет вставить... опять неучтено.
(может и еще чтото есть. чтобы предугадать, каждый процесс надо знать досконально, что невозможно, их и слишком много и они постоянно меняются. систему то тоже пока не закончили переделывать... ;)


 
Separator ©   (2005-11-20 15:32) [14]


> sniknik ©   (20.11.05 15:18) [13]

Согласен, у меня тоже есть недостатки, не все учел.
Я не делал упор но то, что мой код полностью верен, но я считаю, что использование try в данном случае не целесообразно, тот же StrToIntDef полностью перекрывает их нужды



Страницы: 1 вся ветка

Текущий архив: 2005.12.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
4-1129190985
312Kbps
2005-10-13 12:09
2005.12.11
Имя пользователя в домене !


8-1121037044
Yura32
2005-07-11 03:10
2005.12.11
OpenGL


14-1132393898
x.pro
2005-11-19 12:51
2005.12.11
Что означает LOL?


2-1132550552
Mamur
2005-11-21 08:22
2005.12.11
Обращение из папки которой запускается


14-1132357774
Nous Mellon_
2005-11-19 02:49
2005.12.11
Вопрос по настройке прав