![]() |
|
|
![]()
|
|
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Это как это? И кто его , компилятор, спрашивать будет? А вариант, уверяю Вас, безнадежный. Особенно, при собеседовании при преме на работу -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Sfairet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 11.1.2007 Репутация: нет Всего: нет |
Имелись ввиду компиляторы не совместимые со стандартом=)
Да я и не спорю что вариант с нулём большая редкость, но тем не менее при определенных обстаятельствах он не исключён=) |
|||
|
||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Sfairet и Vyacheslav скажите, а будет ли работать такой код???
-------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
| stmamont |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 343 Регистрация: 13.3.2004 Где: влг Репутация: 3 Всего: 3 |
Bima, вот к этому и велось)
именно так и нужно отлавливать ошибку |
|||
|
||||
| Vyacheslav |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Вот так
все таки не стоит. Лучше по-аккуратнее
или хотя бы так
-------------------- С уважением, Вячеслав Ермолаев |
||||||
|
|||||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
набрал у себя в программе при создании потока следущее:
по сути дела, то же самое, но у меня ругается на строку: catch(std::exception ex) Что не так, где подвох??? -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
| pandrew |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.3.2006 Репутация: 3 Всего: 3 |
Добавь #include <except.h>
Кроме того thr1 не будет видно вне скобок. Едва ли ты это хотел. |
|||
|
||||
| Bima |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Заработало. Vyacheslav писал, что лучше использовать:
Для создания потоков с помощью new это тоже применимо, или есть std, какой нибудь другой???
что значит не будет видно??? Я его создал в скобках, он отработал и убился. Приостанавливать и завершать экстренно мне его не нужно. -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
||||||
|
|||||||
| stmamont |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 343 Регистрация: 13.3.2004 Где: влг Репутация: 3 Всего: 3 |
если обобщить
|
|||
|
||||
| Vyacheslav |
|
||||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Это во-первых. Во-вторых, если Вы используете VCL, его разработчики как правило перехватывают первоначальные исключения и вместо них генерят свои с типом Exception. Так что, Ваш код должен выглядеть примерно так
В-третьих, абослютно не вижу смысла ловить исключения по месту. По месту стоит ловить их тогда, когда есть возможность что-то исправить. Здесь же ясно, что объект не создался(неважно по какой причине) и программу либо следует прекратить полностью, либо прекратить выполнение конкретного участка с выдачей информации. По этому я бы здесь исключение не ловил. А все сделал централизованно Вообще любая программа должна начинаться с организации обработки ошибок. Слава богу, разработчики VCL продумали это за нас. И я обычно делаю так. 1. Выкладываю ApplicationEvents, который использую для централизовааной обработки всех действий 2. Задаю обработчик исключений типа
здесь catch(...) к месту, потому что этот код не должен генерить исключение во вне. В коде я подменяю по возможности первичные исключения на свои
Ну и вся обработка в самом коде сводится к 1.Сами генерим исключение
2.Подменяем первоначалые на свои
-------------------- С уважением, Вячеслав Ермолаев |
||||||||||||
|
|||||||||||||
| Лена |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
>смысл такой: оператор new выкидывает exception если система не смогла выделить память.
Значит в книге Архангельского ошибка? Там сказано, что просто вернется NULL, в случае не возможности выделить память через new. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Архангельского надо читатать с осторожностью -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
Это почему. Не ужели автор допускает такие ошибки? Это конечно не в тему. Заранее пардон. |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
И у Архангельского и в стандартном HELPе ошибки есть.
Нет в мире ничего совершенного. |
|||
|
||||
| Vyacheslav |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Потому что, для Архангельского - главное объем. Правда такие ошибки - верх некомпетентности. В конце концов если не со стандартом, то хотя бы с хелпом следовало ознакомиться повнимательнее
Только вот эта форма буде возвращать NULL
Обычные генерят exception -------------------- С уважением, Вячеслав Ермолаев |
||||||
|
|||||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |