Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Экстренный выход из программы или процедуры! 
:(
    Опции темы
Bart_Simpson
Дата 5.4.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



короче вот такой вот вопрос как мне выйти быстренько из проги или процедцры обработки если файл не налйден
Код

void File::open_read(const char* fName){
    fPtr=fopen(fName,"r");
    if (fPtr==NULL){
                    MessageBoxA(NULL,"File not found!","Erorr!",MB_ICONSTOP);                            
                    }
}    


break не подходит ашипки выдаёт!
PM MAIL ICQ   Вверх
zkv
Дата 5.4.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



используйте исключения, либо return,  либо exit() смотря откуда и куда собираетесь 
PM MAIL   Вверх
Daevaorn
Дата 5.4.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

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



На выбор:
Код

return;
exit(-1);

первая из функции, вторая из программы и функцииsmile
PM MAIL WWW   Вверх
Xenon
Дата 5.4.2007, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Я бы советовал организовать концепцию исключений, то есть main код заключить в try-блок, а здесь кидать исключение, типа
Код

if (fPtr==NULL) throw "File not found";

В Catch , блоке можно вывести сообщение об ошибке.


--------------------
user posted image  
PM MAIL   Вверх
vinter
Дата 5.4.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

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



Цитата

Экстренный выход 

тада лучше abort() smile 


--------------------
Мой блог
PM MAIL WWW   Вверх
Xenon
Дата 5.4.2007, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



terminate() smile


--------------------
user posted image  
PM MAIL   Вверх
Promitheus
Дата 6.4.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вообще говорят что catch и try это прошлый век и ими уже не пользуются для перехвата исключений. Позже приведу автора книги и название, если потребуется.

ИМХО: не найденный файл это не такое исключение чтобы его через catch try отлавливать. Я понимаю не найдена dll, версия не та компонента. Хотя на файле конечно проще тренироваться и отработать этот метод исключений.
PM MAIL ICQ   Вверх
ama_kid
Дата 6.4.2007, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

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



Цитата(Bart_Simpson @  5.4.2007,  17:04 Найти цитируемый пост)
break не подходит ашипки выдаёт!

Break - это выход из цикла, а не из процедуры/функции/программы...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Earnest
Дата 6.4.2007, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Promitheus @  6.4.2007,  10:29 Найти цитируемый пост)
Вообще говорят что catch и try это прошлый век и ими уже не пользуются для перехвата исключений.

Да ну? И чем же пользуются для перехвата исключений?



--------------------
...
PM   Вверх
Vyacheslav
Дата 6.4.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Promitheus @  6.4.2007,  09:29 Найти цитируемый пост)
Вообще говорят что catch и try это прошлый век и ими уже не пользуются для перехвата исключений. Позже приведу автора книги и название, если потребуется.

Приведите, пожалуйста. Люблю на досуге почитать фэнтези. Такая игра разума просто завораживает



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Partizan
Дата 6.4.2007, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



тот самый случай, когда "аффтар жжот"? )


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
W4FhLF
Дата 6.4.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Цитата(Earnest @  6.4.2007,  09:47 Найти цитируемый пост)
И чем же пользуются для перехвата исключений?


Наряду с SEH(структурная обработка исключения, все эти конструкции используют её) сейчас существует VEH(векторная обработка исключений). Может быть имелось ввиду именно это. 


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


Опытный
**


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

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



Цитата(vinter @  5.4.2007,  17:48 Найти цитируемый пост)
Экстренный выход 


ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE , 0); // кажысь
 smile 

Это сообщение отредактировал(а) JAnty - 6.4.2007, 13:06


--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
PM MAIL   Вверх
Earnest
Дата 6.4.2007, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Эти вещи существуют параллельно, и ничем не лучше языковых исключений (try-catch). 
Более того, некоторые компиляторы могут поймать структурные исключения в блоке catch (...), что весьма удобно для единой обработки.


--------------------
...
PM   Вверх
W4FhLF
Дата 6.4.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Цитата(Earnest @  6.4.2007,  13:15 Найти цитируемый пост)
Эти вещи существуют параллельно, и ничем не лучше языковых исключений (try-catch). 


Компилятор встречая все эти языковые конструкции устанавливает SEH-фреймы. Это системный механизм.

Это сообщение отредактировал(а) W4FhLF - 6.4.2007, 14:40


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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