Форум программистов, компьютерный форум CyberForum.ru

Как работать с try - catch в С++? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Bind + string::front http://www.cyberforum.ru/cpp-beginners/thread1118189.html
Почему я не могу это забиндить ?:#include <iostream> #include <string> #include <vector> #include <algorithm> #include <functional> int main() { using namespace std::placeholders; using std::string;
C++ Проверить является ли строка числом Задание такое (определите, состоит ли хотя бы одна из строк S1, S2 и S3 только из цифр, если да, то преобразуйте такую строку в число;) Проблема в том что происходит проверка и вывод на экран каждого символа. А нужно что бы проверяло всю строку и выводило сообщение о наличии только букв или только цифр в строке void obj2::digit() { int ctr = 0; while (s1) { if (isalpha(s1)) cout<<"... http://www.cyberforum.ru/cpp-beginners/thread1118184.html
Алгоритм заражения людей как в Plague Inc C++
Привет. Собственно есть такая игра на телефон как Plague Inc. Цель — убить человечество, развивая бактерию. Решил написать упрощенную консольную версию. Никак не могу придумать алгоритм, по какому будут заражаться люди. Думал в сторону геометрической прогрессии, но народ заражается слишком быстро. Вначале люди должны заражаться медленно, после улучшений вируса все быстрее и быстрее, но не хочется...
Что быстрее assembler или c++ C++
Вопрос от новичка. Что будет быстрее по скорости выполнения и на сколько: 1) сложить a+b на C++ или на assembler 2) умножить a*b на C++ или на assembler
C++ Вывод цифр с помощью символа "*" http://www.cyberforum.ru/cpp-beginners/thread1118149.html
Господа, помогите вывести звездочками цифры. Попроще, если можно. И с пояснением.
C++ Найти наибольший элемент среди стоящих на главной и побочной диагоналях матрицы Дана действительная квадратная матрица порядка N (N – нечетное), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей. #include <stdio.h> #include <locale.h> #include <iostream.h> #include <conio.h> #include <string.h> #include <windows.h> #define SIZE 5 подробнее

Показать сообщение отдельно
kraborak
1 / 1 / 0
Регистрация: 05.09.2013
Сообщений: 45

Как работать с try - catch в С++? - C++

13.03.2014, 15:59. Просмотров 421. Ответов 6
Метки (Все метки)

Доброго времени суток. Подскажите плиз как именно работает try catch? Я попробовал сделать вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void f1() {
    int i = 5;
    int j = 0;
    int a = i/j; //вот она - непредвиденная ошибка
}
 
void f2() {
    f1();
}
 
void f3() {
    f2();
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    try {
        f3();
 
    } catch(...) { //как вариант - обрабатываем ВСЕ ошибки
        printf("Exception! Other!!!\n");
    }
}
и нарвался на ошибку т.е. catch не работает.

Насколько я понял из танцев с бубном и изучением различной литературы чтобы сработал catch необходимо в строке, в которой может произойти ошибка, бросить throw. Конкретно в этом примере если в ф-ции f3 ДО вызова ф-ции f2 написать throw 1; и обработку catch(int i) тогда все отлавливается нормально.

Теперь непосредственно вопрос. Существует ли возможность отлова ошибки без throw (я в каком-то блоке НЕ жду ошибки считая что блок надежен но из-за фазы луны и среднестатистической температуры на марсе она все же вылетает и нужно ее отловить) как это сделано в Delphi?

Delphi
1
2
3
4
5
try begin
i = 5/0;
end except begin
print("Ошибка!");
end;
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru