Как с помощью try и catch проверить вводимые данные?

Есть код, в котором заполняется массив чисел. Как в нем сделать правильную проверку данных, что бы был переход к catch. И исключительная ситуация была найдена.

void Arr::Input()
{
    for (int i = 0; i < size; i++)
    {
        cout << "Введите " << i + 1 << " элемент массива: ";
        cin >>arr[i];
        try
        {
            cin.fail() == 0;
        }
        catch(const exception &ex)
        {
            cout << "Ошибка: Некорректный ввод!" << endl;
            cin.clear();
            cin.ignore(10, '\n');
            i--;
        }
    }
}

Ответы (1 шт):

Автор решения: Harry

Можно так:

cin.exceptions(cin.failbit);

for (int i = 0; i < size; i++)
{
    try {
        cout << "Введите " << i + 1 << " элемент массива: ";
        cin >>arr[i];
    }
    catch(const exception &ex)
    {
        cout << "Ошибка: Некорректный ввод!" << endl;
        cout << ex.what() << endl;
        cin.clear();
        cin.ignore(10, '\n');
        i--;
    }
}
→ Ссылка