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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.82
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,927
Записей в блоге: 1
#1

как работает try, catch - C++

21.12.2011, 18:41. Просмотров 3022. Ответов 7
Метки нет (Все метки)

Как работает конструкция try, catch? Если не сложно объясните на не большом примере. А то гугли читал в книги так не могу понять ее использования.И в какой студио она работает, а то говорят что в VS 6.0 C++ не работает
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2011, 18:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как работает try, catch (C++):

Не работает try catch - C++
пишу такой код try{ int k=0; int i=44/k;} catch(...) {cout<<"OSIBKA BLIN "<< endl;} но программа зависает как будто...

min-gw try-catch почемуто не работает - C++
Немогу понять почему не обрабатывается исключение, код приведен ниже. #include <cstdlib> #include <iostream> #include <windows.h> ...

Работает ли указатель на базовый класс исключения, когда попадает в блок catch - C++
Работает ли указатель на базовый класс исключения, когда попадает в блок catch так же как обычно? То есть, если есть переопределенные...

Как работать с try - catch в С++? - C++
Доброго времени суток. Подскажите плиз как именно работает try catch? Я попробовал сделать вот так: void f1() { int i = 5; int j...

Разъясните подробно, как работают Try-catch - C++
Добрый вечер, форумчане! Такая просьба - разъясните нубасу(то бишь мне) подробно как работает try catch throw или киньте ссылки, где это...

Не понимаю как сделать try/catch в программе - C++
в общем, у меня стек заполняется только целочисленным типом данных (int). Но также необходимо сделать исключения для типа double и букв...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
22.12.2011, 10:39 #2
try и catch это есть конструкцимя языка с++. не привязанная к конкретной реализации конкретной платформы. т.е. у тебя судя по всему должна тоже работать.
нужна дабы ловить исключения ошибок возникших по ходу программы.
В общем случае выглядит так:
try {} - под скобками находится модуль программы который может вызвать исключение.
catch - вставляют для возврата ошибки в скобках try. вообще можешь вернуть с помощью cath все что угодно. Обычно возвращают код ошибки например число 1.
1
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
22.12.2011, 10:45 #3
Цитата Сообщение от Андрей2011 Посмотреть сообщение
Обычно возвращают код ошибки например число 1.
Обычно создают специальный класс, который по канонам C++ наследуют от std::exception. А уже в нем хранится вся информация о возникшей ошибке. При чем для каждой ошибки можно создавать собственный класс. Коды ошибок - это не очень правильный метод.
2
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,927
Записей в блоге: 1
22.12.2011, 14:42  [ТС] #4
Цитата Сообщение от Андрей2011 Посмотреть сообщение
try и catch это есть конструкцимя языка с++. не привязанная к конкретной реализации конкретной платформы. т.е. у тебя судя по всему должна тоже работать.
нужна дабы ловить исключения ошибок возникших по ходу программы.
В общем случае выглядит так:
try {} - под скобками находится модуль программы который может вызвать исключение.
catch - вставляют для возврата ошибки в скобках try. вообще можешь вернуть с помощью cath все что угодно. Обычно возвращают код ошибки например число 1.
Если не сложно, покажи на примере:
Пользователь вводит число, число не должно быть не больше 10, Как это можно сделать с помошью этой конструкции
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
22.12.2011, 15:32 #5
Цитата Сообщение от Sylar9 Посмотреть сообщение
Пользователь вводит число, число не должно быть не больше 10, Как это можно сделать с помошью этой конструкции
Это плохой пример. Исключения должны использоваться для исключительных ситуаций, а не когда придется.
1
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,927
Записей в блоге: 1
22.12.2011, 17:10  [ТС] #6
Цитата Сообщение от fasked Посмотреть сообщение
Это плохой пример. Исключения должны использоваться для исключительных ситуаций, а не когда придется.
Покажи на каком-то другом простеньком примере? Очень надо знать как они работают
0
Casper-SC
Эксперт .NET
3509 / 1728 / 179
Регистрация: 27.03.2010
Сообщений: 4,881
Записей в блоге: 1
22.12.2011, 17:19 #7
C++
1
2
3
4
5
6
7
8
class exception {
public:
  exception () throw();
  exception (const exception&) throw();
  exception& operator= (const exception&) throw();
  virtual ~exception() throw();
  virtual const char* what() const throw();
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// exception example
#include <iostream>
#include <typeinfo>
using namespace std;
 
class Polymorphic {virtual void Member(){}};
 
int main () {
  try
  {
    Polymorphic * pb = 0;
    typeid(*pb);  // throws a bad_typeid exception
  }
  catch (exception& e)
  {
    cerr << "exception caught: " << e.what() << endl;
  }
  return 0;
}
Источник
0
Evg
Эксперт CАвтор FAQ
17809 / 6019 / 388
Регистрация: 30.03.2009
Сообщений: 16,539
Записей в блоге: 26
22.12.2011, 17:21 #8
Цитата Сообщение от Sylar9 Посмотреть сообщение
Покажи на каком-то другом простеньком примере? Очень надо знать как они работают
На простеньком примере этого не показать. Т.е. показать-то можно, только не будет понятно, зачем нужно делать так, когда можно сделать эдак. Вместо того, чтобы компостировать людям мозги на форуме, лучше возьми любую книгу по Си++ и почитай сам. Там и описание будет, и примеры. Потому что тебе сейчас тут приведут миллион примеров, но внятно так никто и не объяснит, что это конструкция делает (потому что половина тех, кто попытается объяснить, сам не понимает чётко)
3
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2011, 17:21
Привет! Вот еще темы с ответами:

Объясните пожалуйста, как работать с try catch и throw - C++
как следует работать с try catch и throw. никак не могу понять как применить их в программе

Обработка любых исключений в try catch на C++ также как на C# - C++
Есть ли возможность обрабатывать все ошибки в программе на C++, точно также как это сделано на C#? На C# просто помещаешь текст...

Как реализовать проверку типа переменной с помощью try/catch? - C++
Здравствуйте! Я немножко не понял как тут, в С++ работают эти вещи. Вот мне нужно проверить переменную на значение, чтоб проверялась на int...

Как передать управление в блок catch после системного исключения (компилятор g++)? - C++
Вот пример: не удаётся это сделать #include &lt;windows.h&gt; #include &lt;stdio.h&gt; //Эта функция- НОВЫЙ обработчик...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.12.2011, 17:21
Ответ Создать тему
Опции темы

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