Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поговорим про исключения 
:(
    Опции темы
Kuvaldis
Дата 28.10.2007, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 11
Всего: 61



Есть у меня преподаватель, с легкой руки которого мы здесь на нескольких листах рассуждали о строках в С++
НА очереди исключения...
Ссылаясь на интервью Хейлсберга - автора С#(правда, я их не нашел), были даны принципы использования исключений, не нарушающих принципы структурного программирования:
1. Все исключения должны иметь общий базовый класс

2. Объекты исключений должны располагаться в динам. памяти. Это камень в сторону С++. Таким образом мы не можем сказать, откуда в общем случае пришло исключение. + многократное копирование по стеку при раскрутке (есть в Страуструпе)

3. В объекте должна быть ссылка на предыдущее исключение в контексте которого возникла данная (так сделано в .NET только c Frammework 2.0 )

4. Использование исключений для управления ходом работы проги зарещено. (у Страуструпа есть и намеки на такое нецелевое использование)

5. Касается того, что все таки объекты должны быть только динамические -> слова по поводу try... finally (уже обсуждали)

6. Обработка исключений с поглощением допустима лишь на самом верхнем уровне (сюда цикл обработки сообщений и т.д)

Скажу так: препод этот очень грамотный, работает как раз на С++, в Check Point (который делает Zone Alarm и т.д.) Т.е. в компетентности его сомневаться не приходится. Но сам он дельфист.

В общем, хотелось бы услышать ваше мнение, дорогие форумчане smile

СУВ, Kuvaldis

Это сообщение отредактировал(а) Kuvaldis - 11.1.2008, 11:22


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
archimed7592
Дата 28.10.2007, 23:26 (ссылка) |   (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Ыыыы, стрелять этих Дельфистов надо... smile
Ну давай поговорим smile.

Цитата(Kuvaldis @  28.10.2007,  22:59 Найти цитируемый пост)
1. Все исключения должны иметь общий базовый класс

Угу... Должны... std::exception для того и сделан(а также несколько классов std::logic_error, std::domain_error и т.д.)...
И тем не менее, страна свободная, свобода слова и т.п. - никто не мешает тебе бросить int или char * или объект пользовательского типа, не являющегося наследником std::exception.


Цитата(Kuvaldis @  28.10.2007,  22:59 Найти цитируемый пост)
2. Объекты исключений должны располагаться в динам. памяти. Это камень в сторону С++. Таким образом мы не можем сказать, откуда в общем случае пришло исключение. + многократное копирование по стеку при раскрутке (есть в Страуструпе)

1. Зачем? Ну будут они в "динамической памяти"(она что, чем-то отличается? 0_о) - что изменится?
2. Многократных копирований реализации имеют право избегать и, поверь, они именно так и поступают.
3. Копирования не избежать, если написано catch(MyException e){ ... }, но что мешает написать catch(const MyException &e){ ... }(опять же свобода программерского слова - хочет копирований пишет так, не хочет - пишет "нормально")?


Цитата(Kuvaldis @  28.10.2007,  22:59 Найти цитируемый пост)
3. В объекте должна быть ссылка на предыдущее исключение в контексте которого возникла данная (так сделано в .NET только c Frammework 2.0 )

А можно пример для тупых и, желательно на пальцах что это такое и зачем это нужно, потому что я могу бросить исключение просто так(потому что мне не понравился нулевой указатель, к примеру) - куда будет ссылаться такая "ссылка на предыдущее исключение"?

Цитата(Kuvaldis @  28.10.2007,  22:59 Найти цитируемый пост)
4. Использование исключений для управления ходом работы проги зарещено. (у Страуструпа есть и намеки на такое нецелевое использование)

Согласен... И тем не менее, в .NET'е они используются для того, чтобы прервать поток, к примеру smile.
Утверждение в общем случае хорошее, но, оно применимо к любому языку, ибо ни один язык не может запретить пользоваться тебе исключениями вместо if'а.


Цитата(Kuvaldis @  28.10.2007,  22:59 Найти цитируемый пост)
5. Касается того, что все таки объекты должны быть только динамические -> слова по поводу try... finally (уже обсуждали)

finally? С++ имеет семантику автоматический объектов и, посему finally ему не нужен по определению(RAII).

Цитата(Kuvaldis @  28.10.2007,  22:59 Найти цитируемый пост)
6. Обработка исключений с поглощением допустима лишь на самом верхнем уровне (сюда цикл обработки сообщений и т.д)

Крайне неверное утверждение. Ошибка должна обрабатываться в том месте, которое умеет эту ошибку обрабатывать(читай в том месте, которое знает что с ней делать), не раньше и не позже. Примеры приводить нужно?


Цитата(Kuvaldis @  28.10.2007,  22:59 Найти цитируемый пост)
Скажу так: препод этот очень грамотный, работает как раз на С++, в Check Point (который делает Zone Alarm и т.д.) Т.е. в компетентности его сомневаться не приходится. Но сам он дельфист.

В его авторитете я не сомневаюсь, также, как и не сомневаюсь в том, что отсутствие в языке семантики автоматических объектов(как класса вообще), отсутствие понятия константности объекта, отсутствие статических инструментов(всё в run-time), а также, наличие сборщика мусора(относится к джава-дотнетам) проедает мозг, накладывает отпечаток и т.д., так что в компетентности Дельфистов относительно устройства языка С++(а точнее того, что они хотели бы сделать из С++) я сомневаюсь smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Kuvaldis
Дата 28.10.2007, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 11
Всего: 61



archimed7592
Цитата

можно пример для тупых и, желательно на пальцах что это такое и зачем это нужно, потому что я могу бросить исключение просто так(потому что мне не понравился нулевой указатель, к примеру) - куда будет ссылаться такая "ссылка на предыдущее исключение"?

Честно говоря, я это и хотел в интервью найти, но не нашел. :( Не знаю, просветить не успели, так как пара закончилась 
Но эту фичу можно и не юзать (ссылка 0 )
Цитата

Крайне неверное утверждение. Ошибка должна обрабатываться в том месте, которое умеет эту ошибку обрабатывать(читай в том месте, которое знает что с ней делать), не раньше и не позже. Примеры приводить нужно?

имелось в виду throw;   // повторная генерация


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
marcusmae
Дата 28.10.2007, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 5
Всего: 39



Нда, это в целом очень напоминает .NET-овые исключения : базовый класс Exception, исключения хранят ссылки на дерево вложенных исключений, приведших к данному, хранят трассу вызовов, в связи с чем не очень понятно утверждение о том, что

Цитата(Kuvaldis @  28.10.2007,  22:59 Найти цитируемый пост)
Таким образом мы не можем сказать, откуда в общем случае пришло исключение.


помимо это специализируются (например, ArgumentException в числе прочего указывает на имя аргумента).

С одной стороны, подход грамотный при разработке больших и/или устойчивых, защищённых программ. Надстройка над C#, SpeC# форсирует проработку исключений введением контрактов на вызовы, например :
Код

public virtual
int BinarySearch(int index , int count , object val , IComparer comparer )
    requires 0<=index otherwise ArgumentOutOfRangeException ;
    requires 0<=count otherwise ArgumentOutOfRangeException ;
    requires count <=this.Count − index otherwise ArgumentException ;
    requires comparer == null ==>
        value is IComparable || Forall{int i in{index : index + count}; this[i] is IComparable} otherwise     
            ArgumentException ;
    requires comparer == null && value != null ==>
        Forall{int i in{index : index + count}; this[i] != null ==>
            this[i].GetType().IsAssignable(value.GetType()) ||
            value.GetType().IsAssignable(this[i].GetType())}  
                otherwise InvalidOperationException ;

    ...


С другой стороны, невполне ясно, какое это может найти выражение в плюсах, где исключения есть, но их поддержка намного слабее.

Цитата(Kuvaldis @  28.10.2007,  22:59 Найти цитируемый пост)
Использование исключений для управления ходом работы проги зарещено.

Хм, а по-моему, практикуется. Допустим, если какой-то catch-блок несумел обработать исключение, то он пробрасывает его вверх более общим обработчикам, а если сумел, то "проглотил" ошибку, и программа поехала себе дальше. Чем не управление?

Добавлено через 14 минут и 29 секунд
Цитата(archimed7592 @  28.10.2007,  23:26 Найти цитируемый пост)
не сомневаюсь в том, что отсутствие в языке семантики автоматических объектов(как класса вообще), отсутствие понятия константности объекта, отсутствие статических инструментов(всё в run-time), а также, наличие сборщика мусора(относится к джава-дотнетам) проедает мозг, накладывает отпечаток и т.д.


Ха-ха smile Хорошие доводы, archimed7592.
Не считаю свой мозг совсем уж проеденым, все больше и больше отхожу от .NET к плюсам, и чувствую себя в них намного комфортнее smile

Это сообщение отредактировал(а) marcusmae - 28.10.2007, 23:48


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
Lazin
Дата 29.10.2007, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(archimed7592 @  28.10.2007,  23:26 Найти цитируемый пост)
А можно пример для тупых и, желательно на пальцах что это такое и зачем это нужно, потому что я могу бросить исключение просто так(потому что мне не понравился нулевой указатель, к примеру) - куда будет ссылаться такая "ссылка на предыдущее исключение"?

Цитата(archimed7592 @  28.10.2007,  23:26 Найти цитируемый пост)
Крайне неверное утверждение. Ошибка должна обрабатываться в том месте, которое умеет эту ошибку обрабатывать(читай в том месте, которое знает что с ней делать), не раньше и не позже. Примеры приводить нужно?

Иногда бывает так, что хрен поймешь как ошибку обрабатывать, как например обработать ошибку доступа. Такие ошибки приводят к тому что программа падает, причем у клиента. А система обработки исключений, в этом случае должна помочь разработчикам сего глюкалова понять из-за чего это происходит, т-есть получить информацию о контексте выполнения программы в этот момент.
PM MAIL Skype GTalk   Вверх
archimed7592
Дата 29.10.2007, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Kuvaldis @  28.10.2007,  23:45 Найти цитируемый пост)
Но эту фичу можно и не юзать (ссылка 0 )

Да чего юзать или нет это вопрос десятый smile.
Я не понимаю зачем нужна ссылка на какое-то мифическое предыдущее исключение(по какому принципу они хоть упорядычиваются? какое предыдущее, а какое следующее? smile)...

Цитата(Kuvaldis @  28.10.2007,  23:45 Найти цитируемый пост)
имелось в виду throw;   // повторная генерация 

Гхм... Опять я тебя не понимаю: давай на пальцах, что подразумевалось под исходным утверждением и при чём здесь rethrow?

Цитата(marcusmae @  28.10.2007,  23:46 Найти цитируемый пост)
С другой стороны, невполне ясно, какое это может найти выражение в плюсах, где исключения есть, но их поддержка намного слабее.

А можно конструктивно: что понимается под слабой поддержкой исключений и чем С++ в этом плане слабже .net'а?

Цитата(Lazin @  29.10.2007,  09:26 Найти цитируемый пост)
Иногда бывает так, что хрен поймешь как ошибку обрабатывать, как например обработать ошибку доступа. Такие ошибки приводят к тому что программа падает, причем у клиента. А система обработки исключений, в этом случае должна помочь разработчикам сего глюкалова понять из-за чего это происходит, т-есть получить информацию о контексте выполнения программы в этот момент. 

Ну, скажем, в том же .net "мощная система исключений" позволяет полностью узнать контекст, IIRC, только в отладочном режиме.
Опять же, что понимается под "должна помочь разработчикам сего глюкалова понять из-за чего это происходит, т-есть получить информацию о контексте выполнения программы в этот момент." - на пальцах(на примерах).


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 29.10.2007, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(archimed7592 @  29.10.2007,  10:02 Найти цитируемый пост)
А можно конструктивно: что понимается под слабой поддержкой исключений и чем С++ в этом плане слабже .net'а?

я ни в коем случае не сторонник .NET
но мне кажется управляемый код априорно более гибок (но не быстр естественно) во всех отношениях (и в плане исключений в частности)
динамическое формирование кода, перекомпиляция в run-time и все такое


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
archimed7592
Дата 29.10.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(MAKCim @  29.10.2007,  10:09 Найти цитируемый пост)
я ни в коем случае не сторонник .NET

Типа, отмазался smile.

Цитата(MAKCim @  29.10.2007,  10:09 Найти цитируемый пост)
но мне кажется управляемый код априорно более гибок (но не быстр естественно) во всех отношениях (и в плане исключений в частности)

В априоре гибком коде возможно RAII? Или может быть там возможны такие же мощные(читай compile-time) шаблоны?
Список можно продолжить smile.

Цитата(MAKCim @  29.10.2007,  10:09 Найти цитируемый пост)
динамическое формирование кода

Рефлексия? Да ну её... Ну вот ты хоть раз динамически чего-нибудь формировал? smile

Цитата(MAKCim @  29.10.2007,  10:09 Найти цитируемый пост)
перекомпиляция в run-time и все такое 

Речь про JIT? А в чём плюсы этого подхода(кроме мифической кроссплатформенности)?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
griker
Дата 29.10.2007, 10:33 (ссылка)   | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


MDMA
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 14.7.2006
Где: Tallinn

Репутация: нет
Всего: 8



Да ладно чуваки... Расслабтесь посмотрите какой - нибудь фильм... А потом на свежую голову сядете за комп


--------------------
I don't respect police
PM MAIL   Вверх
MAKCim
Дата 29.10.2007, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(archimed7592 @  29.10.2007,  10:17 Найти цитируемый пост)
Речь про JIT? А в чём плюсы этого подхода(кроме мифической кроссплатформенности)? 

нет, не только в кроссплатформенности
допустим есть некоторый код, который постоянно выполняется (какой-нибудь сервер)
виртуальная машина (CLR, JRE) в зависимости от внешних факторов (например какая-либо ветвь кода выполняется только в 5% всех случаев) может перекомпилировать (=оптимизировать) код с их учетом
Цитата(archimed7592 @  29.10.2007,  10:17 Найти цитируемый пост)
Рефлексия? Да ну её... Ну вот ты хоть раз динамически чего-нибудь формировал?

ну согласись, это тоже не аргумент
я лично вообще особо с .NET/Java не работал, с Reflection тем более
но это же не означает, что она бесполезна
Цитата(archimed7592 @  29.10.2007,  10:17 Найти цитируемый пост)
Или может быть там возможны такие же мощные(читай compile-time) шаблоны?
Список можно продолжить

опять таки, в С++ compile-time шаблоны, в .NET run-time
и что?
это ортогональные понятия
с другой стороны, модифицировав компилятор какого-либо языка .NET, можно получить те же мощные compile-time шаблоны
а вот обратное не верно (т. е какую-либо фишку .NET легко портировать в С++)
что я так .NET защищаю  smile  smile 

Добавлено через 4 минуты и 8 секунд
Цитата(MAKCim @  29.10.2007,  10:34 Найти цитируемый пост)
кроме мифической кроссплатформенности

кроссплатформенность то настоящая
тут просто много других причин (это про .NET)
ну а Java реально кроссплатформенна


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
archimed7592
Дата 29.10.2007, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(MAKCim @  29.10.2007,  10:34 Найти цитируемый пост)
допустим есть некоторый код, который постоянно выполняется (какой-нибудь сервер)
виртуальная машина (CLR, JRE) в зависимости от внешних факторов (например какая-либо ветвь кода выполняется только в 5% всех случаев) может перекомпилировать (=оптимизировать) код с их учетом

Опять же - мифическая возможность smile.
Реальные JIT'ы так делают? Сомневаюсь.


Цитата(MAKCim @  29.10.2007,  10:34 Найти цитируемый пост)
ну согласись, это тоже не аргумент
я лично вообще особо с .NET/Java не работал, с Reflection тем более
но это же не означает, что она бесполезна

Ну почти бесполезна smile.
Она помогает, дизайнеру, к примеру, узнать какие есть свойства у компонента(пользовательского).
Мы где-то на исходниках холиварили на тему применимости рефлексии - ничего убедительного в пользу рефлексии сказанно не было.


Цитата(MAKCim @  29.10.2007,  10:34 Найти цитируемый пост)
опять таки, в С++ compile-time шаблоны, в .NET run-time
и что?
это ортогональные понятия

Опять таки: ты знаком с тем, как реализуются run-time шаблоны в .net? smile
По идее, то же самое можно сделать в С++ с помощью интерфейсов и обыновенных(нешаблонных) классов smile.

Добавлено через 2 минуты и 35 секунд
griker, ты по моему перепутал тематику с флеймом.


Цитата(MAKCim @  29.10.2007,  10:34 Найти цитируемый пост)
кроссплатформенность то настоящая
тут просто много других причин (это про .NET)
ну а Java реально кроссплатформенна 

Хорошо, С++ тоже кроссплатформеный smile. Только перекомпилировать нужно самому smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 29.10.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(archimed7592 @  29.10.2007,  10:40 Найти цитируемый пост)
Реальные JIT'ы так делают? Сомневаюсь.

я слышал от компетентного источника, что JVM  так делает
ничего другого сказать не могу
вообще
мы говорим о реализациях концепции управляемого кода или о самой концепции?  smile 
Цитата(archimed7592 @  29.10.2007,  10:40 Найти цитируемый пост)
Опять таки: ты знаком с тем, как реализуются run-time шаблоны в .net? smile
По идее, то же самое можно сделать в С++ с помощью интерфейсов и обыновенных(нешаблонных) классов

тут надо какого-нибудь авторитетного человека, который хорошо знаком с .NET
например Aldan

Добавлено через 2 минуты и 10 секунд
Цитата(archimed7592 @  29.10.2007,  10:40 Найти цитируемый пост)
Хорошо, С++ тоже кроссплатформеный smile. Только перекомпилировать нужно самому

 smile я не спорю
только типы кроссплатформенности разные

Это сообщение отредактировал(а) MAKCim - 29.10.2007, 10:51


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Lazin
Дата 29.10.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Я бы хотел напомнить что тема называется: Поговорим про исключения
Цитата(archimed7592 @  29.10.2007,  10:02 Найти цитируемый пост)
Опять же, что понимается под "должна помочь разработчикам сего глюкалова понять из-за чего это происходит, т-есть получить информацию о контексте выполнения программы в этот момент." - на пальцах(на примерах). 

Видел когданибудь в ХР окошко с сообщением: "Программа выполнила недопустимую инструкцию и будет закрыта, бла-бла-бла..." - так-вот это поведение по умолчанию при возникновении необработанного исключения, и его можно переопределить. Например можно предложить пользователю послать отчет об ошибке разработчикам. 
PM MAIL Skype GTalk   Вверх
archimed7592
Дата 29.10.2007, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Lazin @  29.10.2007,  11:18 Найти цитируемый пост)
Я бы хотел напомнить что тема называется: Поговорим про исключения

Да что там - Макс главный флудогон этого раздела smile.


Цитата(Lazin @  29.10.2007,  11:18 Найти цитируемый пост)
Видел когданибудь в ХР окошко с сообщением: "Программа выполнила недопустимую инструкцию и будет закрыта, бла-бла-бла..." - так-вот это поведение по умолчанию при возникновении необработанного исключения, и его можно переопределить. Например можно предложить пользователю послать отчет об ошибке разработчикам.

Видел. К чему всё это? К тому что бывают исключения про которые "забыли"? И то, что в этом случае помогут ссылки на "предыдущие" исключения? Хорошо, допустим... Осталось понять как они помогут и по какому принципу они предыдущие и следующие?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 29.10.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(Lazin @  29.10.2007,  11:18 Найти цитируемый пост)
Я бы хотел напомнить что тема называется: Поговорим про исключения

а никто и не забывал, высказывайтесь  smile 
конструктивный спор, логически связанный с предметом основного обсуждения, вполне уместен

Это сообщение отредактировал(а) MAKCim - 29.10.2007, 11:43


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1358 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.