Форум: "Основная";
Текущий архив: 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.034 c