Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перехват сообщений об ошибке 
:(
    Опции темы
andrey_post
  Дата 23.3.2004, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 23.12.2003
Где: Екатеринбург

Репутация: нет
Всего: нет



Как перехватить сообщение о таких ошибках как List of Bounds, Is no valid Integer и т.п.
и вместо них писать свой месседж. И как дать понять программе при ошибке конвертации StrToInt (т.е. если строка не конвертируется в число) и если возникла такая ошибка то выход из цикла.

Плиз хелп! withstupid.gif
--------------------
И что бы там не происходило, не стоит воспринимать жизнь слишком всерьёз, всё равно нам из неё живыми не выбраться!!!
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 23.3.2004, 06:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Код
try
 //твой код
except
 on E: EAccessViolation do
   ShowMessage(Format('тут был я: %s', [E.Message]));
end


Это сообщение отредактировал(а) <Spawn> - 23.3.2004, 06:55


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Guest
Дата 23.3.2004, 12:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Точно так же и с StrToInt
Код

try
  i:=StrToInt('s123');
except
  showMessage('asd');
end;


  Вверх
<Spawn>
Дата 23.3.2004, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Цитата(andrey_post @ 22.3.2004, 22:45)
И как дать понять программе при ошибке конвертации StrToInt (т.е. если строка не конвертируется в число) и если возникла такая ошибка то выход из цикла.

Утрецом на скорую руку перед учебой не досмотрел до конца вопрос. Так вот, при возникновении ошибки преобразования строки в число твой цикл автоматически прервется. Можешь, если это необходимо отвловить эту ошибку, как уже показал Guest при помощи блока try...except, но лучше отлавливать ошибку, явно указав ее тип, иначе при возникновении ошибки другого типа ты можешь не там искать ее причину.

Код
procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
begin
 try
   i :=  StrToInt('df2')
 except
   on E: EConvertError do
     ShowMessage(Format('È òóò ÿ òîæå áûë :) : %s', [E.Message]));
 end;
end;



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
andrey_post
Дата 24.3.2004, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 23.12.2003
Где: Екатеринбург

Репутация: нет
Всего: нет



БОЛЬШОЙ СЕНЬКС!!!! thumbs-up.gif
Добавлено @ 06:51
Да, совсем забыл. У меня в процедуре, происходит более 40 конвертаций из Int в String и обратно. Дык мне для каждой строчки конвертации так писать ... try.. except ?
--------------------
И что бы там не происходило, не стоит воспринимать жизнь слишком всерьёз, всё равно нам из неё живыми не выбраться!!!
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 24.3.2004, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Можешь делать глобальную обработку(Для всей проги):

1)Кидаешь на форму компонент TApplicationEvents
2)Пишешь обработчик события OnException:

Код
procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
 E: Exception);
begin
 if E is EConvertError then
   ShowMessageFmt('Conver Error: %s', [E.Message]);
end;


Добавлено @ 11:35
Цитата(andrey_post @ 23.3.2004, 22:46)
БОЛЬШОЙ СЕНЬКС!!!! thumbs-up.gif
Добавлено @ 06:51
Да, совсем забыл. У меня в процедуре, происходит более 40 конвертаций из Int в String и обратно. Дык мне для каждой строчки конвертации так писать ... try.. except ?

Зачем для каждой? Все конвертации ставь в блок try ... except - при возникновении ошибки, управление передастя в блок except...end, а там уже пиши чего хочешь

Это сообщение отредактировал(а) <Spawn> - 24.3.2004, 11:33


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
-=::BlackCat::=-
Дата 1.5.2004, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 12.7.2003
Где: растёт анаша?

Репутация: 1
Всего: 6



<Spawn>

А если это TClientSocket?
Просто при нажатии на кнопку он пытается приконектится ка серваку, а если сервака нету то он ошибки показывает, так вот надо бы это дело изменить.
сразу могу скозать что питался зделать через try except end; но не фига не получилось команда проскакивает и except не срабативает


--------------------
-=::BlackCat::=-user posted image

такой дуратцкий аватар потому как мой 100х100, а такие подгрузить нелзя, движок форума чо сам не может его переделать??  гррр, админ, форум косячит  
PM MAIL ICQ   Вверх
-=::BlackCat::=-
Дата 1.5.2004, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 12.7.2003
Где: растёт анаша?

Репутация: 1
Всего: 6



проблема снята, нужно в TCustomWinSocket, OnError у ErrorCode поставить 0 тогда нечиго показано не будет smile.gif


--------------------
-=::BlackCat::=-user posted image

такой дуратцкий аватар потому как мой 100х100, а такие подгрузить нелзя, движок форума чо сам не может его переделать??  гррр, админ, форум косячит  
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.