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

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

Войти
Регистрация
Восстановить пароль
 
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
#1

Не ловятся исключения - C++

28.08.2012, 19:16. Просмотров 426. Ответов 7
Метки нет (Все метки)

Почему при освобождение памяти не ловятся исключения?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
A *ob;
    try{
        ob = new A[3];
    }catch(bad_alloc xa){
      cout << "err.\n";
      return 1;
    }
 
    try{
        delete  ob;
    }catch(...){
      cout << "err.\n";
      
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2012, 19:16     Не ловятся исключения
Посмотрите здесь:

Исключения - C++
Никак не могу понять, как работают исключения в С++. Может быть кто-нибудь сможет объяснить на примере деления на 0. Исключения должны быть...

исключения - C++
скажите пожалуйстокак написать через исключение if(n&lt;=0 || n&gt;=100000000) { fclose(f); f=fopen(&quot;output.txt&quot;, &quot;w&quot;); ...

Исключения - C++
можно ли возвращаться к выполнению кода после обработки исключения, например try{ func1();//обе ф-и могут вызывать исключение...

Исключения - C++
Помогите реализовать класс исключения в данном коде. Задание: Реализуемая функция должна генерировать подходящие исключения. Обработку...

исключения - C++
Есть тестовое задание. Реализовать класс. Есть метод. * @note The function does not validate the index, if the index is out ...

Исключения - C++
Не совсем понимаю, как действуют исключения, для чего использовать свои классы при отлавливании исключения... Покидайте ссылки на...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт CЭксперт С++
9465 / 5478 / 927
Регистрация: 25.07.2009
Сообщений: 10,502
28.08.2012, 19:23     Не ловятся исключения #2
bgm313, а что ловиться-то должно? delete A вместо delete [] A? Это не поймается, просто утечка памяти будет...
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
28.08.2012, 20:36     Не ловятся исключения #3
delete не кидает исключений
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
28.08.2012, 21:24  [ТС]     Не ловятся исключения #4
Тем не менее у меня выскакивает ошибка?
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
28.08.2012, 21:28     Не ловятся исключения #5
Тем не менее у меня выскакивает ошибка?
это вопрос или утвреждение? если вопрос - то вам там виднее. если утверждение и вам не понятно почему нет исключения, то его и не должно быть.
если деструкторы объектов не кидают исключений, то их нет. соответственно, ловится нечему.
при вызове new[] и последующем вызове delete вместо delete[] исключения не кидаются.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
29.08.2012, 14:49     Не ловятся исключения #6
При вызове delete на new[] или delete[] на new программа уходит в UB. Может быть дамп памяти, может быть ничего, может быть взрыв компьютера, одним словом - поведение программы не определено.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
29.08.2012, 15:10     Не ловятся исключения #7
Напомню, что для своих собственных классов можно перегрузить как обычные версии, так и []-версии, так что в принципе встроить защиту от дурака реально.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2012, 15:27     Не ловятся исключения
Еще ссылки по теме:

Исключения - C++
Надо сделать исключение в программе. У меня есть список. Есть методы добавить в конец списка, в начало списка, удалить елемент который...

исключения - C++
программа реализует проверку на двоичное число: #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; //класс исключений ...

Исключения - C++
Всем доброго времени суток! В универе дошли до темы &quot;Обработка исключительных ситуаций&quot; и возник вопрос, где в реальных приложениях...

Исключения - C++
Ребят, тут такая тема. В общем нужно при вводе данных смотреть на исключения, т.е. если ввели в int буквы - пробросить исключение. С этим я...


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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт CЭксперт С++
9465 / 5478 / 927
Регистрация: 25.07.2009
Сообщений: 10,502
29.08.2012, 15:27     Не ловятся исключения #8
Цитата Сообщение от bgm313 Посмотреть сообщение
Тем не менее у меня выскакивает ошибка
Ошибку студия выдаёт по тому, что она типа умная и сама такие вещи отслеживает. А так ForEveR правильно говорит. gcc не ругается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main() {
    int * arr = new int [10];
    try {
        delete arr;
    }
    catch (...) {
        std::cerr << "Hitler kaput!" << std::endl;
    }
    
    std::cout << "Bye!" << std::endl;
    
    return 0;
}
Код
[andrew@andrew shitcode]$ g++ -Wall -o new10 new10.cpp 
[andrew@andrew shitcode]$ ./new10
Bye!
[andrew@andrew shitcode]$
студия вон ошибки выдаёт, а какой-нибудь борланд-трубоси может и
Цитата Сообщение от ForEveR Посмотреть сообщение
взрыв компьютера
устроить...
Yandex
Объявления
29.08.2012, 15:27     Не ловятся исключения
Ответ Создать тему
Опции темы

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