Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка искючений... Ошибка при обработке исключений... 
V
    Опции темы
Sorbing
  Дата 12.5.2007, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем  доброго времени суток!

Помогите решить проблему:
Подскажите ошибку в коде программы. Ситуация следующая:
Нужно  обработать исключения,  как-то  деление  на  ноль, символы алфавита в текстовом поле  вместо цифр,  и т.д.

Внизу код:
Код

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
float x;

try
{
x = StrToFloat (Edit1->Text);
}
catch (EConvertError &e)
{
ShowMessage ("OK!");
return;
}
}
//---------------------------------------------------------------------------

Заранее благодарен.

PM MAIL   Вверх
W4FhLF
Дата 13.5.2007, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

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



Цитата(Sorbing @  12.5.2007,  21:55 Найти цитируемый пост)
Нужно  обработать исключения,  как-то  деление  на  ноль, символы алфавита в текстовом поле  вместо цифр,  и т.д.


Ну так а в чём проблема? Да и код ты на первый взгляд правильный привёл. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Sorbing
Дата 13.5.2007, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



W4FhLF,  проблема в том, что  сообщение  "OK!"  не  отображается при  исключении.  Вместо  этого  следующее:
user posted image
PM MAIL   Вверх
W4FhLF
Дата 13.5.2007, 13:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

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



У меня борланд не стоит к сожалению, вообще надо было тебе в соответствующем разделе и создать тему. 
А если так:



Код

try
{
x = StrToFloat (Edit1->Text);
}
catch (...)
{
ShowMessage ("OK!");
return;
}


Что будет?


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
jonie
Дата 13.5.2007, 13:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



это нормально - ты запускаешь в интегрированнной среде, а она дабы помочь программисту показывает где мб ошибка.
при этом catch() отрабытывает как надо после дальнейшего запуска.
отрубается сие поведение в Tools->Debugger Option -> вкладка LanguageExceptions -> снять галки Stop on Delphi\C++ Exceptions и все будет как ожидается.
за сим вопрос можно и закрыть)


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Sorbing
Дата 13.5.2007, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



W4FhLF,  использовал  твой код  обработки  исключения - результат  тот же.  Все  же  за  помощь  благодарю.
Проблему  решил  так  как  посоветовал jonie,  отдельное  тебе спасибо.
Тема  закрыта.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




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


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

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