Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не понимаю что с try-except


sqlmaniac ©   (2008-03-03 16:08:00) 

Это первый опыт использования исключений, поэтому прошу понять :) Соединяюсь с базой данных при помощи dbExpress. Вот фрагмент кода

 DataModule1.MSSQLConnection.Params.Values['HostName']:= EditServName.Text;
 DataModule1.MSSQLConnection.Params.Values['DataBase']:= EditDatabaseNAme.Text;
 DataModule1.MSSQLConnection.Params.Values['User_Name']:= EditUserName.Text;
 DataModule1.MSSQLConnection.Params.Values['Password']:= EditPassword.Text;

 try
 DataModule1.MSSQLConnection.Connected:=True;
 except
 on EDatabaseError do begin
   MessageDlg('Not connected!',mtError,[mbOK],0);
   EDatabaseError.
 end;
 end;

Книги говорят, что конструкция try-except должна отлавливать исключение и не позволять появляться ошибке, однако при оставлении полей пустыми, либо при недоступности сервера да и при любой другой ошибке компиляция прерывается с соответсвующим ErrorMessage. Не понимаю :)


Anatoly Podgoretsky   (2008-03-05 09:48:00) [1]

> Германн  (05.03.2008 02:26:13)  [13]

Только про лечение не надо.


Германн   (2008-03-05 02:26:00) [2]

Блин! А очепятками я заразился от АП!
:)


Германн   (2008-03-05 02:23:00) [3]

Заиканияе, мой тяжкий крест! :(


Германн   (2008-03-05 00:24:00) [4]


> Leonid Troyanovsky ©   (04.03.08 20:10) [10]
>
>
> > Anatoly Podgoretsky ©   (03.03.08 19:09) [9]
>
> > Точно, убьешь бобра - спасешь дерево, убьешь Архангельского
> > спасешь лес.
>
> Поздно уже :(

Но наши люди сражались!
http://www.delphikingdom.com/asp/articles_forum.asp?ArticleID=1082
Борьба велась два года с хвостиком, но зараза всё-таки распространилась. Остаётся уповать только на регулярные, по мере ненеобходимости, инъекции ААсыворотки. :)


Leonid Troyanovsky   (2008-03-04 20:10:00) [5]


> Anatoly Podgoretsky ©   (03.03.08 19:09) [9]

> Точно, убьешь бобра - спасешь дерево, убьешь Архангельского
> спасешь лес.

Поздно уже :(
И леса того уже нет, и зараза распространилась широко.
Пандемия.

--
Regards, LVT.


Anatoly Podgoretsky   (2008-03-03 19:09:00) [6]

> DiamondShark  (03.03.2008 16:17:03)  [3]

Точно, убьешь бобра - спасешь дерево, убьешь Архангельского спасешь лес.


Ega23   (2008-03-03 18:15:00) [7]


> Values['User_Name']


Пробел вместо подчеркивания, если это ADOConnection.ConnectionString


Семеныч   (2008-03-03 16:39:00) [8]

> sqlmaniac   (03.03.08 16:30) [6]

Но лучше эту галку не снимать. Тогда при запуске под средой исключение возникать будет (что удобно для отладки), а при автономном запуске - не будет (что и требовалось).


sqlmaniac   (2008-03-03 16:30:00) [9]

Palladin спасибо! Всё понял)


sqlmaniac   (2008-03-03 16:28:00) [10]

Ой "EDatabaseError." это артефакт)) Смотрел в списочке какие у этого объекта есть методы и забыл стереть когда копировал)

Нет не компиляция. Выполнение. НУ мы ведь друг друга поняли). Ну я говорю в частности про этот класс. Если убрать вообще строчку

   on EDatabaseError do

то ничего не меняется. Так же вылетают "Project bla-bla raised exception class EDatabaseError with message ....." с различными сообщениями в зависимости от того на каком этапе соединения произошла ошибка.

Спасибо за понимание!


Palladin   (2008-03-03 16:20:00) [11]

это я понимая что это класс исключения и бла бла бла... мне не понятно что же эта строчка олицетворяет то собой? да еще с точкой на конце. что она должна делать по твоему мнению? мне очень интересно. это раз. два. я очень дико извиняюсь конечно. но как это у тебя компиляцияпрерывается во время работыприложения? ну да ладно. ларчик в принципе просто открывается: Menu\Tools\Debugger Options\Language Exceptions\Stop on Delphi Exceptions галку снимаем...

вообще смешной ты :)


DiamondShark   (2008-03-03 16:17:00) [12]


> Книги говорят, что конструкция try-except должна отлавливать
> исключение и не позволять появляться ошибке

Это архангельские с флёновыми, что-ли? Плюнь, то не книги, а враги леса.


>  компиляция прерывается с соответсвующим ErrorMessage

Точно компиляция? Ничего не путаешь?

В приведённом огрызке кода обрабатывается только EDatabaseError и его наследники. Ты уверен, что у тебя появляется исключение только этого (и его наследников) класса?


sqlmaniac   (2008-03-03 16:16:00) [13]

это класс исключения, прямой наследник от Exception. Именно он создается, например, при незаполнении обязательных послей и попытке соединиться с базой. Впрочем если эту строчку убрать, то всё равно ничего не меняется (сначала пробовал вообще без неё).


Palladin   (2008-03-03 16:14:00) [14]


>  EDatabaseError.

а это что такое?


Наверх

Титульная страница Поиск, карта сайта Написать письмо