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

Вниз

Исключительная ситуация Try ... except   Найти похожие ветки 

 
V l a d i m i r   (2004-04-20 16:32) [0]

Пытаюсь перехватить исключительную ситуацию, однако получается, что мой обрабочик try...except игнорируется.
Вот пример: на форме Edit1, в которое должна быть введена дата, и кнопка Button1.

procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
begin
s:=Edit1.Text;
   try
   StrToDate(s);
   except
   on EConvertError do ShowMessage("Ошибка");
   end;
end;


Если ввести не дату, а какой-нибудь текст (например, яблоко), то кликнув по кнопке, вылетает сообщение, что возникла ошибка класса EConvertError (которую я перехватывал)with message "яблоко" is valid date....
Подскажите, как правильно обработать ошибку.


 
V l a d i m i r   (2004-04-20 16:32) [0]

Пытаюсь перехватить исключительную ситуацию, однако получается, что мой обрабочик try...except игнорируется.
Вот пример: на форме Edit1, в которое должна быть введена дата, и кнопка Button1.

procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
begin
s:=Edit1.Text;
   try
   StrToDate(s);
   except
   on EConvertError do ShowMessage("Ошибка");
   end;
end;


Если ввести не дату, а какой-нибудь текст (например, яблоко), то кликнув по кнопке, вылетает сообщение, что возникла ошибка класса EConvertError (которую я перехватывал)with message "яблоко" is valid date....
Подскажите, как правильно обработать ошибку.


 
Jack128 ©   (2004-04-20 16:34) [1]

у меня все работает. Но у мя D5, может в шестерке поднимается другой класс исключения..


 
Jack128 ©   (2004-04-20 16:34) [1]

у меня все работает. Но у мя D5, может в шестерке поднимается другой класс исключения..


 
Reindeer Moss Eater ©   (2004-04-20 16:37) [2]

except
on EConvertError do ShowMessage("Ошибка");
end;


1. Вот прямо так и обрабатывать как сейчас

2. Ты в серъез полагаешь, что твой такой обработчик полезнее для юзера (и тебя кстати тоже ) чем дефолтный?


 
Reindeer Moss Eater ©   (2004-04-20 16:37) [2]

except
on EConvertError do ShowMessage("Ошибка");
end;


1. Вот прямо так и обрабатывать как сейчас

2. Ты в серъез полагаешь, что твой такой обработчик полезнее для юзера (и тебя кстати тоже ) чем дефолтный?


 
Тимохов ©   (2004-04-20 16:38) [3]


> V l a d i m i r   (20.04.04 16:32)  

силой телепатической мысли я полагаю, что у автора сообщение выдает среда разработки.

отключите в меню tools\debugger option\ stop on exception.

могу, конечно, и ошибаться.


 
Тимохов ©   (2004-04-20 16:38) [3]


> V l a d i m i r   (20.04.04 16:32)  

силой телепатической мысли я полагаю, что у автора сообщение выдает среда разработки.

отключите в меню tools\debugger option\ stop on exception.

могу, конечно, и ошибаться.


 
Ega23 ©   (2004-04-20 16:40) [4]

Или запускать не из-под отладчика...


 
Ega23 ©   (2004-04-20 16:40) [4]

Или запускать не из-под отладчика...


 
Остап   (2004-04-20 16:40) [5]

отдаю свой голос в пользу последнего оратора ))


 
Остап   (2004-04-20 16:40) [5]

отдаю свой голос в пользу последнего оратора ))


 
Digitman ©   (2004-04-20 16:41) [6]


> однако получается, что мой обрабочик try...except игнорируется.


чушь ты городишь

"яблоко" при попытке конвертации в дату-время и любом раскладе приведет к исключению


 
Digitman ©   (2004-04-20 16:41) [6]


> однако получается, что мой обрабочик try...except игнорируется.


чушь ты городишь

"яблоко" при попытке конвертации в дату-время и любом раскладе приведет к исключению


 
Тимохов ©   (2004-04-20 16:43) [7]

люблю я форму - автор кинул неполный вопрос, а все гадают, головы ломают, соревнуются в красноречии. Во жизнь!

Автору.
Кто сообщение об ошибке выдает?


 
Тимохов ©   (2004-04-20 16:43) [7]

люблю я форму - автор кинул неполный вопрос, а все гадают, головы ломают, соревнуются в красноречии. Во жизнь!

Автору.
Кто сообщение об ошибке выдает?


 
Digitman ©   (2004-04-20 16:56) [8]


> Тимохов ©   (20.04.04 16:43) [7]


у тебя есть цель жизни - стать телепатом


 
Digitman ©   (2004-04-20 16:56) [8]


> Тимохов ©   (20.04.04 16:43) [7]


у тебя есть цель жизни - стать телепатом


 
Тимохов ©   (2004-04-20 16:59) [9]


> Digitman ©   (20.04.04 16:56) [8]

вы уже стали :))))

наверное без этого мастером не станешь...


 
Тимохов ©   (2004-04-20 16:59) [9]


> Digitman ©   (20.04.04 16:56) [8]

вы уже стали :))))

наверное без этого мастером не станешь...


 
TUser ©   (2004-04-20 17:02) [10]


> у тебя есть цель жизни - стать телепатом

Да он уже стал. Я думаю, что [3] - это правильно. каждый раз, каогда приходится Delphi ставить - приходится убирать эту галочку. А то вываливаются не мои обработчики ошибок, а стандартные.


 
TUser ©   (2004-04-20 17:02) [10]


> у тебя есть цель жизни - стать телепатом

Да он уже стал. Я думаю, что [3] - это правильно. каждый раз, каогда приходится Delphi ставить - приходится убирать эту галочку. А то вываливаются не мои обработчики ошибок, а стандартные.


 
WebErr ©   (2004-04-20 17:13) [11]


> Тимохов ©   (20.04.04 16:59) [9]

Загрузите пожалуйста из Нет"а последнюю версию Тимохова, ту самую, котрая понимает авторов сабжей с полуслова! :))))


 
WebErr ©   (2004-04-20 17:13) [11]


> Тимохов ©   (20.04.04 16:59) [9]

Загрузите пожалуйста из Нет"а последнюю версию Тимохова, ту самую, котрая понимает авторов сабжей с полуслова! :))))


 
V l a d i m i r   (2004-04-20 17:27) [12]

Дело в том, что пример я привел простой. На самом деле у меня программа читает данные из Excel и заносит их в таблицу бд. Одна из ячеек excel содержит строку"На начало 01.02.03 года". Я создал функцию, которая замечательно "достает" дату из этой строки. Однако если пользователь ошибется и будет загружать данные из другого файла excel, где в указанной ячейке не будет строки, содержащей дату, вылетает исключительная ситуация.. Здесь я привел просейший пример. Просто у меня во время выполнения полностью игнорируется этот обработчик Try ... except. И сначала вылетает стандартное сообщение об ошибке класса EConvertError, и только потом ShowMessage("Ошибка")в except
  on EConvertError do ShowMessage("Ошибка");
 

Вот в этом и вся проблемма. Не могу перехватить первое сообщение..


 
V l a d i m i r   (2004-04-20 17:27) [12]

Дело в том, что пример я привел простой. На самом деле у меня программа читает данные из Excel и заносит их в таблицу бд. Одна из ячеек excel содержит строку"На начало 01.02.03 года". Я создал функцию, которая замечательно "достает" дату из этой строки. Однако если пользователь ошибется и будет загружать данные из другого файла excel, где в указанной ячейке не будет строки, содержащей дату, вылетает исключительная ситуация.. Здесь я привел просейший пример. Просто у меня во время выполнения полностью игнорируется этот обработчик Try ... except. И сначала вылетает стандартное сообщение об ошибке класса EConvertError, и только потом ShowMessage("Ошибка")в except
  on EConvertError do ShowMessage("Ошибка");
 

Вот в этом и вся проблемма. Не могу перехватить первое сообщение..


 
Тимохов ©   (2004-04-20 17:28) [13]

вы 3 сделали?


 
Тимохов ©   (2004-04-20 17:28) [13]

вы 3 сделали?


 
Digitman ©   (2004-04-20 17:32) [14]

когда приобретаешь даже молоток, imho, следует таки изучить инструкцию по юзанью оного)


 
Digitman ©   (2004-04-20 17:32) [14]

когда приобретаешь даже молоток, imho, следует таки изучить инструкцию по юзанью оного)


 
Vlad ©   (2004-04-20 17:33) [15]


> Тимохов ©   (20.04.04 16:38) [3]
> отключите в меню tools\debugger option\ stop on exception.

На сколько я помню, так:
Tools\Debugger Options\Language Exceptions\Stop on Delphi Exceptions


 
Vlad ©   (2004-04-20 17:33) [15]


> Тимохов ©   (20.04.04 16:38) [3]
> отключите в меню tools\debugger option\ stop on exception.

На сколько я помню, так:
Tools\Debugger Options\Language Exceptions\Stop on Delphi Exceptions


 
Тимохов ©   (2004-04-20 17:34) [16]


> Vlad ©   (20.04.04 17:33) [15]

у вас идивительная память. :))
но должен же он сам что-нить поискать.


 
Тимохов ©   (2004-04-20 17:34) [16]


> Vlad ©   (20.04.04 17:33) [15]

у вас идивительная память. :))
но должен же он сам что-нить поискать.


 
WebErr ©   (2004-04-20 17:46) [17]

Просто сделайте так:

try
 StrToDate(s);
except
 ShowMessage("Ошибка");
end;


 
WebErr ©   (2004-04-20 17:46) [17]

Просто сделайте так:

try
 StrToDate(s);
except
 ShowMessage("Ошибка");
end;


 
TUser ©   (2004-04-20 19:12) [18]


> когда приобретаешь даже молоток, imho, следует таки изучить
> инструкцию по юзанью оного)

Микроволновку недавно покупал. Все видели FAQ "Как жарить яйца в микроволновке"? Вот в инструкции к сему девайсу - один из первых пунктов: сырые яйца не разогревать :)


 
TUser ©   (2004-04-20 19:12) [18]


> когда приобретаешь даже молоток, imho, следует таки изучить
> инструкцию по юзанью оного)

Микроволновку недавно покупал. Все видели FAQ "Как жарить яйца в микроволновке"? Вот в инструкции к сему девайсу - один из первых пунктов: сырые яйца не разогревать :)


 
V l a d i m i r   (2004-04-20 23:24) [19]

> Тимохов ©

Благодарю всех, кто принял участие в решении моей небольшой проблемы, и особенно Тимохов ©. Вы попали в точку, и Ваш совет мне очень помог, тк я уже продумал все варианты... (помню, в D5 делал, все проходило... а здесь нужно было оказывается просто знать.) Еще раз огромное всем спасибо.

ВЛАДИМИР.


 
V l a d i m i r   (2004-04-20 23:24) [19]

> Тимохов ©

Благодарю всех, кто принял участие в решении моей небольшой проблемы, и особенно Тимохов ©. Вы попали в точку, и Ваш совет мне очень помог, тк я уже продумал все варианты... (помню, в D5 делал, все проходило... а здесь нужно было оказывается просто знать.) Еще раз огромное всем спасибо.

ВЛАДИМИР.


 
Anatoly Podgoretsky ©   (2004-04-21 00:38) [20]

Да он у нас на случай сложных телепатических ситуаций.


 
Anatoly Podgoretsky ©   (2004-04-21 00:38) [20]

Да он у нас на случай сложных телепатических ситуаций.



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

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.037 c
14-1082201835
VMcL
2004-04-17 15:37
2004.05.09
Расшифровки ^)


14-1082159189
juiceman
2004-04-17 03:46
2004.05.09
Программирование в Delphi глазами хакера (с CD-ROM)


3-1081923210
Balamut
2004-04-14 10:13
2004.05.09
Проблема блокировки таблиц в Delphi


3-1081478539
Лоднев Дмитрий
2004-04-09 06:42
2004.05.09
Как сработать с БД SQL-сервера если сервер не запущен?


3-1081441564
Somebody
2004-04-08 20:26
2004.05.09
http://www.ibase.ru/devinfo/dbexpress.htm





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