Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2011, 22:34   #1
Ckomoroh
Я еще только учусь
Форумчанин
 
Аватар для Ckomoroh
 
Регистрация: 24.10.2009
Сообщений: 125
По умолчанию Обработка исключений

У меня есть программа, которая иногда работает неправильно и выдает ошибку Invalid floating operation.

Есть ли способы кроме try except end; в случае возникновения этой ошибки выполнить некие действия и так, чтобы пользователь не узнал о возникновении ошибки как таковой (т.е. окошка с ошибкой у него не возникло)?

P.S. Просто уже даже каждую строчку кода заключал в конструкцию try except end;, но это не помогло

Последний раз редактировалось Ckomoroh; 20.03.2011 в 22:42.
Ckomoroh вне форума Ответить с цитированием
Старый 20.03.2011, 22:40   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Tools-Debugger Options-Language Exception и сними галку со Stop on Delphi Exception
Тогда делфи будет игнорировать ошибки в куске
Код:
try

except

end;
И не будет перебрасывать тебя в отладку.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 20.03.2011, 22:46   #3
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Кроме непосредственной обработки исключения, есть еще один подход, проверять правильность чего-либо и в случае успеха, делать что-то, иначе ничего.
Например, строку можно проверить на наличие неподходящих символов.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 20.03.2011, 22:46   #4
Ckomoroh
Я еще только учусь
Форумчанин
 
Аватар для Ckomoroh
 
Регистрация: 24.10.2009
Сообщений: 125
По умолчанию

MyLastHit, я уже писал что пробовал.
Каждую строчку кода в эту конструкцию пихнул, так что если ошибка возникнет в этом месте выводилось бы сообщение с номером строки кода, но почему-то программа вылетала и компилятор останавливался на процедуре вообще не связанной с вычислениями (процедуре рисования).

Слышал что можно создать какой-то класс ошибок и через него управлять, но нормальной информации в гугле по перехвату ошибок таким способом не нашел.
Ckomoroh вне форума Ответить с цитированием
Старый 20.03.2011, 22:48   #5
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Компонент TApplicationEvents, событие OnException
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 21.03.2011, 01:17   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Поставь EurekaLog или madExcept. И никогда больше так не делай:

Цитата:
Сообщение от Ckomoroh Посмотреть сообщение
P.S. Просто уже даже каждую строчку кода заключал в конструкцию try except end;, но это не помогло
А то найду и заставлю пять лет чистить картошку на подводной лодке.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 21.03.2011, 08:52   #7
irt
Пользователь
 
Аватар для irt
 
Регистрация: 24.02.2011
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Ckomoroh Посмотреть сообщение
в случае возникновения этой ошибки выполнить некие действия и так, чтобы пользователь не узнал о возникновении ошибки как таковой (т.е. окошка с ошибкой у него не возникло)?
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnException := MyExcept;
end;

Procedure TForm1.MyExcept(Sender:TObject; E:Exception);
begin
{код в случае исключения}
end;
irt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка исключений user666 Помощь студентам 36 27.08.2010 18:00
Обработка исключений _-Re@l-_ Общие вопросы Delphi 3 17.06.2010 08:53
обработка исключений scray PHP 3 15.05.2010 15:02
Обработка исключений try... except Kati Помощь студентам 5 07.03.2010 10:18
mysql_connect - обработка исключений crazy horse PHP 15 10.02.2009 13:52