Главная страница
    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.47 MB
Время: 0.109 c
2-1203607430
Павел
2008-02-21 18:23
2008.03.30
Нужна помощь!!!!!! Как конвертировать xls-файл в dbf файл?


2-1204373153
GHT
2008-03-01 15:05
2008.03.30
высота строк и перенос слов в DBGrid


15-1202459292
arhis
2008-02-08 11:28
2008.03.30
Окно Structure


2-1204633442
s_t_d
2008-03-04 15:24
2008.03.30
Как получить значение свойства Count рабочей книги Excel ?


15-1202996674
Ломброзо
2008-02-14 16:44
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский