Рубрики

C ++ | Обработка исключений | Вопрос 12

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

Например, каков вывод следующей программы?

#include <iostream>

using namespace std;

  
// В идеале это должно было быть "int fun () (int)"

int fun()

{

    throw 10;

}

  

int main()

{

    try

    {

        fun();

    }

    catch (int )

    {

        cout << "Caught";

    }

    return 0;

}

(A) Ошибка компилятора
(B) Нет ошибки компилятора. Выход «пойман»

Ответ: (Б)
Объяснение: Компилятор C ++ не проверяет принудительное выполнение функции для перечисления исключений, которые он может выдавать. В Java это принудительно.

Рекомендуемые посты:

C ++ | Обработка исключений | Вопрос 12

0.00 (0%) 0 votes