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

Вниз

Исключительная ситуация 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....
Подскажите, как правильно обработать ошибку.


 
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. Ты в серъез полагаешь, что твой такой обработчик полезнее для юзера (и тебя кстати тоже ) чем дефолтный?


 
Тимохов ©   (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]

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


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

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


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


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


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

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


 
Тимохов ©   (2004-04-20 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]

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

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


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


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

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


 
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("Ошибка");
 

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


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

вы 3 сделали?


 
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


 
Тимохов ©   (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;


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


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

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


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

> Тимохов ©

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

ВЛАДИМИР.


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

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



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

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

Наверх




Память: 0.51 MB
Время: 0.03 c
7-1076107465
vbazik
2004-02-07 01:44
2004.04.11
Кто знает - возможно ли программирование в DELPHI под Win CE?


1-1082457655
pvb87
2004-04-20 14:40
2004.04.11
Delphi 8


1-1082808233
Юлия
2004-04-24 16:03
2004.04.11
как определить позицию курсора в tmemo?


1-1080128559
_Guest_
2004-03-24 14:42
2004.04.11
где и как отследить смену раскладки клавиатуры?


1-1082350586
Denizzz
2004-04-19 08:56
2004.04.11
StringGrid - выравнивание чисел по правому краю