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

Вниз

не понимаю что с try-except   Найти похожие ветки 

 
sqlmaniac   (2008-03-03 16:08) [0]

Это первый опыт использования исключений, поэтому прошу понять :) Соединяюсь с базой данных при помощи 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. Не понимаю :)


 
Palladin ©   (2008-03-03 16:14) [1]


>  EDatabaseError.

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


 
sqlmaniac   (2008-03-03 16:16) [2]

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


 
DiamondShark ©   (2008-03-03 16:17) [3]


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

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


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

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

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


 
Palladin ©   (2008-03-03 16:20) [4]

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

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


 
sqlmaniac   (2008-03-03 16:28) [5]

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

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

   on EDatabaseError do

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

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


 
sqlmaniac   (2008-03-03 16:30) [6]

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


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

> sqlmaniac   (03.03.08 16:30) [6]

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


 
Ega23 ©   (2008-03-03 18:15) [8]


> Values["User_Name"]


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


 
Anatoly Podgoretsky ©   (2008-03-03 19:09) [9]

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

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


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


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

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

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

--
Regards, LVT.


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


> 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
Борьба велась два года с хвостиком, но зараза всё-таки распространилась. Остаётся уповать только на регулярные, по мере ненеобходимости, инъекции ААсыворотки. :)


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

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


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

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


 
Anatoly Podgoretsky ©   (2008-03-05 09:48) [14]

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

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



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

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

Наверх




Память: 0.5 MB
Время: 0.043 c
9-1168453494
DillerXX
2007-01-10 21:24
2008.03.30
Загрузка процессора


2-1204537212
Sonia
2008-03-03 12:40
2008.03.30
BEGIN expected but INTERFACE found


15-1203006018
Cyrax
2008-02-14 19:20
2008.03.30
Общепринятый формат записи федеральных номеров сотовых телефонов~


4-1185966596
Раф
2007-08-01 15:09
2008.03.30
Как найти подчиненое окно


15-1203259266
Alexd31
2008-02-17 17:41
2008.03.30
чем можно открыть DDF файл?