powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Исключения: за и против
25 сообщений из 158, страница 1 из 7
Исключения: за и против
    #34343268
Фотография selinoth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вы относитесь к исключениям (exceptions)? С какими проблемами вы сталкивались, используя их и какие задачи с их помощью удавалось решить?

В данный момент я работаю над масштабным проектом, в котором исключения запрещены идеологией. Основание для отказа от исключений - трудности с отладкой (запутывание call stack) невозможность отлова утечек памяти и т.п. Что вы думаете по этому поводу?
...
Рейтинг: 0 / 0
Исключения: за и против
    #34343300
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selinothКак вы относитесь к исключениям (exceptions)? С какими проблемами вы сталкивались, используя их и какие задачи с их помощью удавалось решить?


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

Проблемы которые могут быть - это
1) относительная медленность работы исключений (естественно только в случае throw).
2) понимание разработчиками , когда должны быть использованы исключения.
А именно - когда дальнейшая работа функции НЕВОЗМОЖНА.

selinoth
В данный момент я работаю над масштабным проектом, в котором исключения запрещены идеологией. Основание для отказа от исключений - трудности с отладкой (запутывание call stack) невозможность отлова утечек памяти и т.п. Что вы думаете по этому поводу?

Чушь собачья. Однако использование исключений в коде, который изначально не был готов к ним, может быть проблемно.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34343353
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда то бывает удобней использовать исключения, когда то удобней обойтись без них. Всегда можно обойтись без исключений. Принципиальный отказ от исключений приводит к потенциальному не рацианальному коду.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34343397
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selinothВ данный момент я работаю над масштабным проектом, в котором исключения запрещены идеологией. Основание для отказа от исключений - трудности с отладкой (запутывание call stack) невозможность отлова утечек памяти и т.п. Что вы думаете по этому поводу?

Человек, который пытается навязать такую идеологию, очевидно не компетентен в вопросах программирования С++. Постарайтесь убедить его в обратном. Опишите сложности программирования без обработки исключений вообще. Приведите статистику увеличения человеко-часов на написание кода и отладку. Желательно подкрепить эти слова конкретными цифрами (в рублях). Действует отрезвляюще.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34343528
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selinothКак вы относитесь к исключениям (exceptions)? С какими проблемами вы сталкивались, используя их и какие задачи с их помощью удавалось решить?

В данный момент я работаю над масштабным проектом, в котором исключения запрещены идеологией. Основание для отказа от исключений - трудности с отладкой (запутывание call stack) невозможность отлова утечек памяти и т.п. Что вы думаете по этому поводу?

Единственным достойным аргументом для запрета использования исключений является переносимость. Многие компиляторы для встроенных ОС не умеют работать с исключениями или делают это криво, например Symbian.
Другим аргументом может быть "совместимость" с существующим кодом. Но и там можно писать с исключениями, главное чтобы не выпускать их в код, который их не поддерживает.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34344095
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selinothОснование для отказа от исключений - трудности с отладкой (запутывание call stack) невозможность отлова утечек памяти и т.п. http://www.relisoft.com/resource/resmain.html
...
Рейтинг: 0 / 0
Исключения: за и против
    #34344210
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selinothКак вы относитесь к исключениям (exceptions)? С какими проблемами вы сталкивались, используя их и какие задачи с их помощью удавалось решить?

В данный момент я работаю над масштабным проектом, в котором исключения запрещены идеологией. Основание для отказа от исключений - трудности с отладкой (запутывание call stack) невозможность отлова утечек памяти и т.п. Что вы думаете по этому поводу?

есть такая вещь - суда...те которые ходят по рекам и морям... раньше их строили из одной большей миски ("Адльф Гитлер" вспоминаем, лежащий на дне Чёрного - возле Новороссийска)... затем стали делать корабли - секционными (дабы при катастрофе, заполнялся водой не весь корпус а только его незначитильная часть)..

дык вот, ловушки исключений - именно так и можно воспринимать (как секции, увеличивающие запас плавучести Вашего кода). ОЧЕНЬ актуально, когда разработчик и клиент отделены неким НЕ нулевым расстоянием друг от друга...


с уважением
(круглый)
...
Рейтинг: 0 / 0
Исключения: за и против
    #34344485
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selinothКак вы относитесь к исключениям (exceptions)? С какими проблемами вы сталкивались, используя их и какие задачи с их помощью удавалось решить?


Очень положительно.

По поводу задач.

Если проект большой то используются везде и всегда.
При наличии рекурсивных алгоритмов использую исключения
даже в минимальных проектах.



Используются когда на этапе разработки модуля
еще не извесно будущее поведение в зависимости от ситуации.
Или Если не извесно где ситуацию дешевле обрабатывать.

По ходу тестирования и развития это выясняется и throw заменяется на локальный обработчик
или return
или пишется обработчик исклюения в нужном месте.

На первом этапе разработки все потенциально убойные ситуации
выбрасывают исключения.
По мере формирования билда их становится все меньше и меньше.

По опыту очень ускоряется процесс отладки и поиск багов и
сокращается количество фич вызванных непредвиденным поведением.

Если в проекте, где то уже используется assert,
то использование вместо него исключений повышает удобство отладки.
В классе искюлчения можно сохранить гораздо больше информации для анализа
возникшей ситуации.



selinoth
В данный момент я работаю над масштабным проектом, в котором исключения запрещены идеологией. Основание для отказа от исключений - трудности с отладкой (запутывание call stack) невозможность отлова утечек памяти и т.п. Что вы думаете по этому поводу?

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

По памяти и межпроцессному взамодействию, да есть,
нужно внимательно подходить к вопросу дизайна.

В этом есть положительный момент, при разработке дизайна тратится
лишний час, зато экономится неделя при отладке.
Проект дисциплинируется с самого начала.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34344903
О! Ваня хочет сказать
1. Когда ошибку можно обработать на месте, ее нужно обрабатывать на месте.
2. Если ошибка должна обрабатываться выше, то можно из функции вернуть код ошибки или возбудить исключение. Естественно, оба способа требуют проектирования - нужно будет спроектировать иерархию исключений или прописать в документации по разработке, что означают коды ошибок. Самый явный пример - библиотека. Некоторые ошибки ее исполнения разработчики не исправляют, а возбуждают исключение или возвращают код ошибки. А прикладной программист, использующий библиотеку, дальше уже обрабатывает ошибку.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34345014
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivan________________...прописать в документации по разработке, что означают коды ошибок...

О да! Занятие, которым девелоперы себя не утруждают. Обычно вместо перечня ошибок в мануале имееи место скупая запись "...обратитесь в службу поддержки и.т.д".

Впрочем, это оффтоп!
...
Рейтинг: 0 / 0
Исключения: за и против
    #34345187
A. Fig Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а шо у нас со скоростью работы программ напичканых ексепшинами?
Ась?
...
Рейтинг: 0 / 0
Исключения: за и против
    #34346121
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A. Fig Leeа шо у нас со скоростью работы программ напичканых ексепшинами?
Ась?

А что есть проблемы со скоростью?
С нынешними частотами и памятью об этом мало кто задумывается.

ИХМО скорость выхода из функции по исключению приблизительно равна возврату
стекового обьекта( экземпляра класса).


На данном этапе развития ИТ скорость разработки, отладки и поддержки
гораздо более важный критерий нежели быстродействие конечного продукта.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34346540
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я лично против (рабочий код всегда будет рабочим), но видел примеры, где точно не обойтись без исключений.

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

аффтопитезь: объект либо именован, либо не существует
...
Рейтинг: 0 / 0
Исключения: за и против
    #34346700
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklinя лично против (рабочий код всегда будет рабочим), но видел примеры, где точно не обойтись без исключений.

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

аффтопитезь: объект либо именован, либо не существует

Если я правельно понял, про что речь, то в линухах вылетат сигнал.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34347564
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A. Fig Leeа шо у нас со скоростью работы программ напичканых ексепшинами?
Ась?ну да, есть немного. И как, заметно?
...
Рейтинг: 0 / 0
Исключения: за и против
    #34347572
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя… а что быстрее, забубенить try/catch или десять ифов для проверки возвращённого значения?
...
Рейтинг: 0 / 0
Исключения: за и против
    #34347782
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoхотя… а что быстрее, забубенить try/catch или десять ифов для проверки возвращённого значения?


Лучше switch
Который занимает 70% тела функции.

:)
...
Рейтинг: 0 / 0
Исключения: за и против
    #34348199
A. Fig Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo A. Fig Leeа шо у нас со скоростью работы программ напичканых ексепшинами?
Ась?ну да, есть немного. И как, заметно?

Угу. Если писать программы для трейдинга - там каждая микросекунда на счету.
Или ввобще что-нибудь реалтайм.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34348210
A. Fig Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoхотя… а что быстрее, забубенить try/catch или десять ифов для проверки возвращённого значения?

Ясен пень - ифы будут быстрее.
Там единственное сравнение на ошибка/неошибка, потом можно и код ошибки искать, а с трай-кетч - вхождение в трай всегда будет кушать время независимо от будет ошибка или нет.

Свитч особо не лучше ифа - если глянуть ассемблер. Просто выглядит приятнее.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34348216
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh Aklinя лично против (рабочий код всегда будет рабочим), но видел примеры, где точно не обойтись без исключений.

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

аффтопитезь: объект либо именован, либо не существует

Если я правельно понял, про что речь, то в линухах вылетат сигнал.

нет, вы поняли неправильно.
я имел ввиду
1) я, собственно, против
2) есть исключительные единичные сутиации, где без исключений не обойтись.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34348254
A. Fig Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklinя лично против (рабочий код всегда будет рабочим), но видел примеры, где точно не обойтись без исключений.

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

аффтопитезь: объект либо именован, либо не существует

не верю. коряво написано значит. надо листы хранить выделенной памяти.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34348277
man_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я "за", потому что когда вызывается N + 1 функция из функции N, и в N + 1 функции происходит ошибка, а обработать её хочется в самой первой, то при классическом подходе надо написать N конструкций доставляющих ошибку наверх. Используя же try/catch, это делать не придётся.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34348294
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man_555А я "за", потому что когда вызывается N + 1 функция из функции N, и в N + 1 функции происходит ошибка, а обработать её хочется в самой первой, то при классическом подходе надо написать N конструкций доставляющих ошибку наверх. Используя же try/catch, это делать не придётся.Да ну, глупости какие.... Во первых, большинство ошибок произошедших в функции N+1 ты будешь обрабатывать в функции N. А все необработаные просто return errorcode; и все.
А во вторых, ошибки произошедшие внутри функции N+1 обычно не имеют смысла для функции N-1. Для N-1 - функция N упала с ошибкой и эта ошибка принадлежит N. Функция N-1 просто не знает о существовании функции N+1 и ее списке возможных ошибок.
Есть такой принцип: инкапсуляция. К ошибкам он тоже применим.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34348302
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man_555а обработать её хочется в самой первой, то при классическом подходе надо написать N конструкций доставляющих ошибку наверх.точняк, передаю код ошибки из любых дебрей проги в код возврата приложения. Это надо видеть.
...
Рейтинг: 0 / 0
Исключения: за и против
    #34348329
man_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl А все необработаные просто return errorcode; и все.

а можно с этого места поподробнее?
...
Рейтинг: 0 / 0
25 сообщений из 158, страница 1 из 7
Форумы / C++ [игнор отключен] [закрыт для гостей] / Исключения: за и против
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]