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

Вниз

не понимаю что с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.04 c
15-1203306318
Dmitry S
2008-02-18 06:45
2008.03.30
Как объявить пустой массив?


2-1204190493
Still Swamp
2008-02-28 12:21
2008.03.30
Как использовать TwilightColorMap


2-1204197319
Александр
2008-02-28 14:15
2008.03.30
Передача формулы в ячейку Excel


2-1204179765
Layner
2008-02-28 09:22
2008.03.30
Как идентифицировать TTreeNode в TTreeView


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский