关于异常的一些问题 有没有什么更好的办法解决异常

#include<iostream>
using namespace std;

int main() {


    int a;
    int b;
    int c;
    cin >> a;
    if (cin.fail()) {
        cin.clear();
        cin.ignore();
    }
    cin >> b;
    if (cin.fail()) {
        cin.clear();
        cin.ignore();
    }
    cin >> c;
    if (cin.fail()) {
        cin.clear();
        cin.ignore();
    }
    cout << a << b << c;


    return 0;
}

请问有没有更好的方法解决异常啊 不想每次输入都要判断一次

可以写异常来抛出 

Here's an example throw_exception.cpp.
 
#include <iostream>
#include <stdexcept>
 
using namespace std;
 
void function()
{
   throw runtime_error("i am an exception");
}
 
int main()
{
   try
   {
      function();
   }
   catch(const std::exception& e)
   {
      cout << e.what() << endl;
   }
 
   return 0;
}