Как выбросить исключение в C++?

Пользователь

от caterina , в категории: C/C++ , 2 года назад

Как выбросить исключение в C++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от clifford , 2 года назад

@caterina Вы можете использовать throw ключевое слово для выброски исключения в C++, посмотрите пример ниже:


1
2
3
4
5
6
7
8
9
#include <stdexcept>

int main() {
    int x = 1;
    if (x > 0) {
        // Вывод: what(): x is positive
        throw std::invalid_argument("x is positive");
    }
}


Пользователь

от nikko , год назад

@caterina 

В C++ для выброса исключения используется ключевое слово throw. Чтобы выбросить исключение, необходимо написать оператор throw с последующим выражением, которое будет являться объектом-исключением.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include <stdexcept>
#include <iostream>

void divide_numbers(int x, int y) {
  if (y == 0) {
    throw std::invalid_argument("Division by zero!");
  } else {
    std::cout << x / y << std::endl;
  }
}

int main() {
  try {
    divide_numbers(10, 0);
  } catch (std::exception& e) {
    std::cout << "Error: " << e.what() << std::endl;
  }
  return 0;
}


В этом примере функция divide_numbers проверяет, равен ли второй аргумент нулю. Если да, то она выбрасывает исключение типа std::invalid_argument с сообщением "Division by zero!". Затем в функции main мы вызываем функцию divide_numbers с аргументами 10 и 0 внутри блока try. Если во время выполнения функции divide_numbers будет выброшено исключение, то программа перейдет к блоку catch, где мы можем обработать исключение. В этом примере мы просто выводим сообщение об ошибке, используя метод what() объекта исключения.