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

try - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Даны 3 числа A,B,C, которые вводятся с клавы. Если число А чётное то вывести сумму чисел А,В,С, иначе их произ http://www.cyberforum.ru/cpp-beginners/thread103365.html
Итак: Даны 3 числа A,B,C, которые вводятся с клавы. Если число А чётное то вывести сумму чисел А,В,С, иначе их произведение.
C++ Cannot convert Прошу прощения за столь ламерский вопрос. При попытке запустить прогу вылетает сообщение: Unit1.cpp(15): E2034 Cannot convert 'char *' to 'char' Unit1.cpp(16): E2034 Cannot convert 'FILE *' to 'FILE' Unit1.cpp(17): E2034 Cannot convert 'int' to 'const void *' Unit1.cpp(17): E2342 Type mismatch in parameter '__ptr' (wanted 'const void *', got 'char') Unit1.cpp(17): E2034 Cannot convert... http://www.cyberforum.ru/cpp-beginners/thread103263.html
C++ Как исключить из цикла числа содержащиеся в массиве
Есть массив исключений Int massiv={0};В нем каждый раз разное количество элементов которые больше нуля. Нужно составить условие, при котором если число больше нуля и входит в массив исключений , то выполняется некое условие. Я написал код , когда сразу известно сколько элементов в массиве больше нуля Скажем таких элементов два for(i=1; i<52; i++){ if(i==massiv|| i==massiv){ break;} }Но...
Как создать uninstall.exe в installshield? Инсталляторы
Заранее извиняюсь если не там тему создал.Написал прогу в билдере, задался вопросом создания инстолятора, для этого выбрал installshield. С инстолятором проблем не возникло, а вот если кто знает подскажите как в installshield создать нормальный деинстолятор? и есть ли где-нибудь русскоязычная документация к этой проге?
C++ Ring0 http://www.cyberforum.ru/cpp-beginners/thread103033.html
Кто-нибудь задавался вопросом работы с уровнем доступа ядра. Я так понял в windows есть 3 режима обработки приложений! и Ring0 имеет самые высокие привилегии. Если кто-то имеет опыт в этой области, просьба поделиться им..
C++ Создание крутящегося каркасного куба Что требуется: Выполнить кручение куба в виде каркаса по оси Z. Язык выполнения - любой, единственное ограничение - не использовать OpenGL подробнее

Показать сообщение отдельно
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,315
12.03.2010, 10:20     try
1.
C++
1
2
3
4
5
6
7
8
9
10
double & operator [] (int i)
{
    if (i >= 0 && i < number)
    {
        return Data[i];
    }
    throw std::out_of_range("Индекс вне диапазона!");
    // сюда мы никогда не попадем уже! но написать return можно, чтобы компилятор не ругался
    return 0.;
}
2. Зависит от пользовательского кода. Классы библиотеки C++ выбрасывают исключения - наследники std::exception, но не POD-типов.
3. Это аргумент, переданный в вызове соответствующего throw. Можно использовать, например, так:
C++
1
2
3
4
5
6
7
8
9
10
11
int n;
try
{
    // ..
    n = 25;
    throw n;
}
catch (int i)
{
    std::cout << "Возникла ошибка с кодом " << n << std::endl;  // будет "Возникла ошибка с кодом 25"
}
3.1. Ничего не передается и этот блок вообще никогда не будет выполняться.
4. и 5. А с какой стати оно должно выводиться? Это Access violation, системное исключение, генерируемое аппаратурой, а не C++-исключение. try/catch перехватывает только C++-исключения, но не системные исключения.
В Windows такие исключения называются SEH-исключениями (читать про них у Рихтера). Можно явно транслировать SEH-исключения в C++-исключения, и тогда такие транслированные исключения будут перехватываться блоками catch.
Смотри функцию _set_se_translator.
Divide by Zero - это тоже SEH-исключение.
 
Текущее время: 20:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru