Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.036 c
1-1131837827
HF-Trade
2005-11-13 02:23
2005.12.11
Как эмулировать дабл клик мыши в другое окно не перемещая курсор


14-1132558756
ПЛОВ
2005-11-21 10:39
2005.12.11
Есть тут знатоки С


2-1132664750
JTAG
2005-11-22 16:05
2005.12.11
Народ еще вопрос по командной строке


1-1132152240
VEZ
2005-11-16 17:44
2005.12.11
OnExit всегда


2-1132935900
crazycrazymax
2005-11-25 19:25
2005.12.11
В консоли кириллица выводится криво, как это лечить?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский