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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.82
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
21.12.2011, 18:41     как работает try, catch #1
Как работает конструкция try, catch? Если не сложно объясните на не большом примере. А то гугли читал в книги так не могу понять ее использования.И в какой студио она работает, а то говорят что в VS 6.0 C++ не работает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
22.12.2011, 10:39     как работает try, catch #2
try и catch это есть конструкцимя языка с++. не привязанная к конкретной реализации конкретной платформы. т.е. у тебя судя по всему должна тоже работать.
нужна дабы ловить исключения ошибок возникших по ходу программы.
В общем случае выглядит так:
try {} - под скобками находится модуль программы который может вызвать исключение.
catch - вставляют для возврата ошибки в скобках try. вообще можешь вернуть с помощью cath все что угодно. Обычно возвращают код ошибки например число 1.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
22.12.2011, 10:45     как работает try, catch #3
Цитата Сообщение от Андрей2011 Посмотреть сообщение
Обычно возвращают код ошибки например число 1.
Обычно создают специальный класс, который по канонам C++ наследуют от std::exception. А уже в нем хранится вся информация о возникшей ошибке. При чем для каждой ошибки можно создавать собственный класс. Коды ошибок - это не очень правильный метод.
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.12.2011, 14:42  [ТС]     как работает try, catch #4
Цитата Сообщение от Андрей2011 Посмотреть сообщение
try и catch это есть конструкцимя языка с++. не привязанная к конкретной реализации конкретной платформы. т.е. у тебя судя по всему должна тоже работать.
нужна дабы ловить исключения ошибок возникших по ходу программы.
В общем случае выглядит так:
try {} - под скобками находится модуль программы который может вызвать исключение.
catch - вставляют для возврата ошибки в скобках try. вообще можешь вернуть с помощью cath все что угодно. Обычно возвращают код ошибки например число 1.
Если не сложно, покажи на примере:
Пользователь вводит число, число не должно быть не больше 10, Как это можно сделать с помошью этой конструкции
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
22.12.2011, 15:32     как работает try, catch #5
Цитата Сообщение от Sylar9 Посмотреть сообщение
Пользователь вводит число, число не должно быть не больше 10, Как это можно сделать с помошью этой конструкции
Это плохой пример. Исключения должны использоваться для исключительных ситуаций, а не когда придется.
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.12.2011, 17:10  [ТС]     как работает try, catch #6
Цитата Сообщение от fasked Посмотреть сообщение
Это плохой пример. Исключения должны использоваться для исключительных ситуаций, а не когда придется.
Покажи на каком-то другом простеньком примере? Очень надо знать как они работают
Casper-SC
 Аватар для Casper-SC
3464 / 1683 / 173
Регистрация: 27.03.2010
Сообщений: 4,824
Записей в блоге: 1
22.12.2011, 17:19     как работает try, catch #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;
}
Источник
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2011, 17:21     как работает try, catch
Еще ссылки по теме:

C++ Разъясните подробно, как работают Try-catch
C++ Как работать с try - catch в С++?
Работает ли указатель на базовый класс исключения, когда попадает в блок catch C++

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16821 / 5242 / 318
Регистрация: 30.03.2009
Сообщений: 14,118
Записей в блоге: 26
22.12.2011, 17:21     как работает try, catch #8
Цитата Сообщение от Sylar9 Посмотреть сообщение
Покажи на каком-то другом простеньком примере? Очень надо знать как они работают
На простеньком примере этого не показать. Т.е. показать-то можно, только не будет понятно, зачем нужно делать так, когда можно сделать эдак. Вместо того, чтобы компостировать людям мозги на форуме, лучше возьми любую книгу по Си++ и почитай сам. Там и описание будет, и примеры. Потому что тебе сейчас тут приведут миллион примеров, но внятно так никто и не объяснит, что это конструкция делает (потому что половина тех, кто попытается объяснить, сам не понимает чётко)
Yandex
Объявления
22.12.2011, 17:21     как работает try, catch
Ответ Создать тему
Опции темы

Текущее время: 10:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru