Форум программистов, компьютерный форум, киберфорум
Наши страницы

отлов ошибок try, catch зачем он нужен? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Инкремент ссылки http://www.cyberforum.ru/cpp-beginners/thread592307.html
int arr = {....} ; while(arr) // arr ссылка на начало массива то есть на 0 элемент ; { //тело цикла ++arr ;//инкремент } Собственно почему нельзя так?
C++ Стороны прямоугольника заданы натуральными числами Ребята пожалуйста нужно написать программу на С++. Отблагодарю!!! Стороны прямоугольника заданы натуральными числами M и N. Составьте программу, которая будет находить, на сколько квадратов, стороны... http://www.cyberforum.ru/cpp-beginners/thread592304.html
C++ Почему-то не реагирует на конец строки '\0'
Задача: нужно посчитать количество слов в строке. В программе ставлю условие: for(int i=0;i<=n-1;i++) if( mass!=' ' && (mass==' ' || mass=='\0') ) k++; А он доходит до конца строки и пройдя...
Массив в С++ C++
Ребята помогите пожалуйста! Нужно сдавать лабораторную, а как делать не знаю( На с++. Нужно заполнить массив: 0 3 0 2 0 1 4 0 5 0 6 0 0 9 0 8 0 7 10 0 11 ...
C++ Программа выводит только первую строку текста http://www.cyberforum.ru/cpp-beginners/thread592277.html
// yourcat.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> using namespace std; int main(void) { int fleas;
C++ Найти, сколько нулевых элементов содержит матрица выше и ниже побочной диогонали Дана вещественная матрица размерности n * m. Найти сколько нулевых элементов содержит матрица выше и ниже побочной диогонали. желательно решить через stdafx.h. учень срочно!!! подробнее

Показать сообщение отдельно
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 115

отлов ошибок try, catch зачем он нужен? - C++

31.05.2012, 12:51. Просмотров 1112. Ответов 1
Метки (Все метки)

я вот пишу прогу, которая не отлавливает ошибку.

C++
1
2
3
4
5
6
7
8
9
try
{
  int i=10;
  i=i/0;
}
catch(...)
{
   printf("\n error");
}
Далее, вот нашел из гугла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <stdexcept>
 
inline int intDiv (int numerator, int denominator) {
    if (denominator == 0)
        throw std::overflow_error("Divide by zero exception");
    return numerator / denominator;
}
 
int main (void) {
    int i = 42;
 
    try {
        i = intDiv (10, 2);
    } catch (std::overflow_error e) {
        std::cout << e.what() << " -> ";
    }
    std::cout << i << std::endl;
 
    try {
        i = intDiv (10, 0);
    } catch (std::overflow_error e) {
        std::cout << e.what() << " -> ";
    }
    std::cout << i << std::endl;
 
    return 0;
}
Работает отлично!!!Только зачем столько напрягаться, когда нужно просто проверить через if, else???

Ладно допустим мы реализовали отлов всех типыоп вот отсюда:
C++
1
2
3
4
5
6
7
8
9
10
11
12
namespace std 
{
    class logic_error;
        class domain_error;
        class invalid_argument;
        class length_error;
        class out_of_range;
    class runtime_error;
        class range_error;
        class overflow_error;
        class underflow_error;
}
Но есть большое НООООО!!!!! Ни одна из них не ловит ошибку деления на нуль!!!!

Вопрос1-> как мне отлавливать все типы ошибок, и есть гарантия того, что все ошибки будут пойманными???

Вопрос2->как мне понять в какой части программы произошла ошибка без построения иерархии try,carth,throw???Имеется ввиду, есть ли инструментарии отлова ошибок как в java, где можно вытаскивать все из стека????
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru