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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 115
#1

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

31.05.2012, 12:51. Просмотров 1100. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 12:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос отлов ошибок try, catch зачем он нужен? (C++):

Переполнение double и отлов ошибок - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; using namespace std; void...

Обработчики ошибок try catch - C++
Друзья, вот есть задача у меня решенная, вот условие: Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6...

Зачем нужен полиморфизм - C++
читал про то что такое полиморфизм, виртуальные методы и тд, вот промер из статьи про виртуальный диструктор class base { ...

Зачем нужен inline - C++
Скажите пожалуйста, зачем нужна команда inline? Изучаю классы, и там говорится мимолётом, что эта функция повысит эффективность, но так и...

Зачем нужен extern? - C++
Знаю, что в интернете полно объяснений зачем он, но я не могу понять... Везде пишут, что он &quot;позволяет объявить переменную без её...

Зачем нужен конструктор? - C++
Всем доброго дня. Ребят такая проблема объясните мне на пальцах для чего нужен конструктор в классах. Я уже столько толмудов перерыл но...

1
rakota
35 / 35 / 1
Регистрация: 05.02.2012
Сообщений: 76
31.05.2012, 12:54 #2
Цитата Сообщение от dqrest Посмотреть сообщение
все типы ошибок
C++
1
2
3
4
5
6
7
8
try
{
 
}
catch(...) //здесь ловятся все ошибки.
{
 
}

Цитата Сообщение от dqrest Посмотреть сообщение
как мне понять в какой части программы произошла ошибка
Создать свой собственный класс для обработки исключений - это может помочь в некоторых случаях.
Цитата Сообщение от dqrest Посмотреть сообщение
есть ли инструментарии отлова ошибок как в java
Нет.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2012, 12:54
Привет! Вот еще темы с ответами:

Зачем нужен static - C++
Объясните зачем нужно объявлять перменные за типом статик, что это даёт я так и не понял. Почему объявлять нужно в классе, а потом ещё и за...

зачем нужен параметр - C++
#include&quot;otobrazenie.h&quot; #include &quot;primary.h&quot; #include &lt;iostream&gt; #include &quot;execution.h&quot; #include&quot;output.h&quot; #include&quot;input.h&quot; ...

Объяснить зачем нужен i - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { cout &lt;&lt; &quot;Enter chislo and stepen: &quot;; ...

Зачем нужен malloc? - C++
malloc - что это? И зачем оно нужно?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru