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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2008, 21:05   #1
BulbaZavr
Новичок
Джуниор
 
Регистрация: 21.12.2008
Сообщений: 1
По умолчанию Исключительные ситуации

Всем привет!
Пишу прогу в Builder C++. И такая проблема..
При задании некоторых значений в форме, существует возможность выхода за пределы значений массива. Думаю, что в этом случае надо использовать try, throw и catch.
Но у меня какая-то проблема.. Программа не переходит по throw и завершается еще до того как попадает в catch { .... }.
Для примера привожу код для теста:
Код:
#include <vcl.h>
#include <conio.h>
#include <iostream>
using namespace std;

int main()
{
    cout << "Start\n";

    try {           
        cout << "Inside block try\n";
        throw 10;   
        cout << "This instruction will not be executed";
    }
    catch (int i) { 
        cout << "Catched error number: ";
        cout << i << "\n";
    }

    cout << "End";
    getch();
    return 0;
}
В результате выполнения программы в консоли:

start
Inside block try

И сообщение об ошибке:
Project Project1.exe raised exception class int with message 'Exception object address: 0x905DA6 Process stopped. Use Step or Run to continue.

Модератор: тег CODE

Последний раз редактировалось MaTBeu; 29.12.2008 в 21:42.
BulbaZavr вне форума Ответить с цитированием
Старый 29.12.2008, 21:43   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Попробуй написать catch(...) погляди что он ловит.
И еще... лучше бросать std::Exception, а не инт. Так надежнее
MaTBeu вне форума Ответить с цитированием
Старый 29.12.2008, 22:47   #3
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
По умолчанию

Мне так кажется... что ты проверял при компиляции и билде в среде разработки (например Билдер), а в нем все исключения ловятся сначала им... Попробуй сбилдить в *.exe файл и там посмотреть на результат работы!
P.S. catch(...) это как default в switch...case!
StarWorm вне форума Ответить с цитированием
Старый 29.12.2008, 23:05   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

в MVS 2008 все отлично работает
Изображения
Тип файла: jpg 0.jpg (21.8 Кб, 127 просмотров)
counter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исключительные ситуации WebBrowser1 beegl Работа с сетью в Delphi 5 29.06.2008 09:36
Исключительные ситуации FIIR БД в Delphi 5 19.06.2008 16:30
Исключительные ситуации FIIR Помощь студентам 1 19.06.2008 13:50
Экстремальные жизненные ситуации Лубышев Свободное общение 17 28.01.2008 20:44
Исключительные ситуации Mickle Общие вопросы Delphi 6 07.10.2007 21:03