TGViewer
Уютное сообщество С++ разработчиков Уютное сообщество С++ разработчиков @cppturbo · 776 subscribers
Post #323 222
Бросаем число
#новичкам

Мы привыкли, что исключения имеют какую-то свою иерархию и каждый класс имеет свое конкретное назначение в контексте отображения ошибки.

А что если мы попытаемся бросить что-то совсем несвязанное с иcключениями? Например, какой-нибудь тривиальный тип вроде int. Это вообще законно?

Абсолютно законно. В С++ можно бросать все, что угодно, кроме объектов неполных типов, абстрактных классов и указателей на неполный тип. Даже указатель на void можно.

Как и число.

Поймать число примерно также просто, как его бросить:

void foo() {
throw 1;
}

int main() {
try {
foo();
}
catch(int i) {
std::cout << i << std::endl;
}
}

// OUTPUT: 1


Это кстати один из любимых вопросов у интервьюеров.

"А можно ли кидать число вместо исключения?"

Теперь вы с полной уверенностью ответите "можно".

Но вот зачем это может быть нужно? Оставьте ваши мысли в комментариях

Make sense. Stay cool.

#interview #cppcore
More from @cppturbo
  1. Sep 23, 2026photo post
  2. Sep 23, 2026🎥 Вебинар по C++: Паттерн многопоточного программирования «Producer-Consumer» Когда неско…
  3. Sep 23, 2026➕ Игра на C++ в консоли ➕
  4. Jul 7, 2026Что выведет следующий код и почему? #include <iostream> void foo(int a) { std::cout << "in…
  5. Jan 14, 2026😭 Путеводитель C++ ПРОГРАММИСТА ПО НЕОПРЕДЕЛЕННОМУ ПОВЕДЕНИЮ падает в твою коллекцию «Пре…
  6. Dec 19, 2025👩‍💻 Удаление элементов из контейнеров с помощью методов erase() и clear() • erase() — уд…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →