Sobes.tech
Junior — Middle

Lehetséges korlátozni vagy megtiltani a funkcióknak, hogy kivételeket generáljanak?

sobes.tech MI

Válasz az MI-től

В C++ можно ограничить функции от генерации исключений с помощью спецификатора noexcept. Если функция объявлена с noexcept, то она гарантированно не выбросит исключение. Например:

void func() noexcept {
    // код, который не выбрасывает исключения
}

Если внутри такой функции всё же будет выброшено исключение, программа вызовет std::terminate().

В старом стандарте C++11 был спецификатор throw(), который означал, что функция не выбрасывает исключений, но сейчас рекомендуется использовать noexcept.

В C (не C++) исключения не поддерживаются, поэтому вопрос неактуален.