170 похожих чатов

На что следует обратить внимание, если я хочу перевести вызов

исключений в обработку кодов ошибок?

27 ответов

8 просмотров

что в итоге будет both

Ffff-Ffff Автор вопроса
Ffff Ffff
А почему оба?

потому что окажется, что конкатенация путей потенциально бросает bad_alloc

Ffff Ffff
А можете пример привести

я не знаю вашу предметную область, я просто указываю, что вы очень сильно можете недооценивать количество исключительных ситуаций внутри используемых вами функции (например, std::string::operator+)

Ffff-Ffff Автор вопроса
Constantine Drozdov
я не знаю вашу предметную область, я просто указыв...

Т.е обязательно нужно обработать все исключения?

Ffff Ffff
Т.е обязательно нужно обработать все исключения?

Либо, все потенциально опасные места оборачивать в noexcept, тогда, если такой участок и выбросит исключение, то ваш процесс благополучно завершится.

Kelbon
а разве это плохо?...

Ну, кому как, СУБД - хорошо. Процессу управления атомной станцией наверное не очень хорошо

Ilya Zviagin
Ну, кому как, СУБД - хорошо. Процессу управления а...

необходимость обработать исключения? То есть лучше чтобы они с вероятностью 10% мимо пролетали на атомной станции?)

Ffff Ffff
Т.е обязательно нужно обработать все исключения?

В большинстве случаев можно обрабатывать все на самом верху, или не обрабатывать вообще, тогда приложение упадёт, что часто приемлемо (главное чтобы запись осталась об этом). Если исключения хорошо продуманы, то по исключению можно восстановить ситуацию.

Ffff-Ffff Автор вопроса
Anatoly Shirokov
Либо, все потенциально опасные места оборачивать в...

Да именно что эта молотилка не должна падать

Ffff Ffff
Да именно что эта молотилка не должна падать

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

В первую очередь на то, что надо это делать без фанатизма...

Constantine Drozdov
потому что окажется, что конкатенация путей потенц...

Если такое случается лучше прокинуть исключения до самого терминейта

disba1ancer
Если такое случается лучше прокинуть исключения до...

А с обработкой эксепшнов в конструкторах что делать?

Ffff-Ffff Автор вопроса
Anatoly Shirokov
тогда лови все исключения на верху и не падай, про...

Есть некоторые исключения связанные с памятью например

Denis P
Лови в main

А если обработка без эксепшнов?

Ffff Ffff
Есть некоторые исключения связанные с памятью напр...

надеюсь имеются в виду не те что летят от проца

Ffff Ffff
Да именно что эта молотилка не должна падать

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

Anatoly Shirokov
лови bad_alloc и выходи

Можно свой аллокатор наверное подсунуть, который будет делать все как надо

Слава
А с обработкой эксепшнов в конструкторах что делат...

Конструкторы особый случай, с ними ничего не попишешь, хотя есть вариант вернуть сконструированный объект с "ошибочным" состоянием

Похожие вопросы

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
приветы , подскажите что я не так сделал , почему у меня скрипт не работает в программе Revit ? ;Autohotkey_RU IfWinActive ("ahk_exe Revit.exe") ; только в открытом Revit Gu...
Anton Terentev
2
> комьюнити я бы не судил по этому чату. Как мы видели по статам просмотров нескольких телеговских постов, то в чате их набивается 30-40 или даже выше, когда как общаются акти...
Constantin F.
4
void bytes2hex(uint8_t* to, uint8_t* from, uint16_t l) { // len(from) == l; len(to) == l * 2 for (uint16_t i = 0; i < l; ++i) { *(to++) = hex[(from[i] >> 4) & ...
#
3
Погодь, а как ты переопределяешь функцию в хедере? Эрланг это же не С, тут явный вызов макросов
Maksim Lapshin
6
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Как сделать чтобы short точно был 2 байта, int точно 4 байта ?(без стандартных библиотек, ну типа без int16_t, int32_t)
#
8
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Карта сайта