💥
C++ — Исключения и обработка ошибок
try/catch, иерархия исключений, noexcept, пользовательские классы исключений, гарантии безопасности, throw, std::exception, RAII в контексте исключений.
28 вопросов · 28 показано
MediumКак работает механизм исключений в C++?exceptionsbasicsEasyВ каком порядке проверяются catch-блоки?try-catchMediumЧем throw отличается от throw e?throwMediumЧто такое std::exception и её иерархия?std-exceptionhierarchyEasyКак создать свой класс исключения?custom-exceptionMediumЧто такое noexcept и зачем он нужен?noexceptMediumЧто такое exception safety guarantees?exception-safetyMediumЧто такое stack unwinding?stack-unwindingEasyЧто такое RAII в контексте исключений?raiiexceptionsHardЧто такое std::current_exception и std::rethrow_exception?exception-ptrHardЧто такое nested exceptions (C++11)?nested-exceptionMediumКогда использовать исключения, а когда коды возврата?exceptions-vs-codesHardКакова стоимость исключений (cost of exceptions)?exceptionsperformanceMediumЧто такое std::terminate и когда вызывается?terminateMediumМожно ли бросать исключения из конструктора?constructorexceptionsMediumМожно ли бросать исключения из деструктора?destructorexceptionsHardЧто такое exception specification и почему dynamic-версия удалена?exception-specHardЧем try/catch отличается от std::expected (C++23)?expectedc++23MediumЧто такое std::system_error?system-errorMediumКак обрабатывать ошибки в конструкторе, если есть несколько new?constructorexceptionsHardЧто такое function-try-block?function-try-blockHardКак обрабатывать ошибки в multi-thread окружении?exceptionsconcurrencyMediumЧто такое идиома ScopeGuard / scope_exit?scope-guardEasyМожно ли бросать исключения по указателю (throw new Exception)?throw-by-pointerEasyЧто такое std::bad_alloc и когда бросается?bad-allocHardЧто такое promise/future exceptions в C++?futureexceptionsHardЧто такое exception-safe singleton?singletonthread-safeHardЧто такое transactional rollback через RAII?transactionraii