异常处理方法:预定义类型和自定义类型。关键字:try …throw…catch
预定义类型:通过捕获异常类型来输出提示;
自定义类型:通过传参,传给自定义的异常类,再通过对象提取出来,输出显示。
/*预定义类型异常语句块*/ int divide(int a) { if (a == 0) { throw new ex("不为0");//异常对象自定义类型 } return a; } class ex :public exception { public: ex(const char* msg); char const* what()const; }; class DivideZero { public: DivideZero() { }; //传进来 DivideZero(string str) { m_msg = str; }; //抛出去 void showMessage()const { cout << m_msg << endl; }; private: string m_msg; }; int main() { /*异常处理*/ int a; cin >> a; while (a) { try { if (0 == a) { throw "不能为0"; //抛出异常 } divide(a);/*调用异常语句块*/ } catch (const char* v)//捕获异常类型 { cout << v << endl; cout << "重新输入" << endl; } catch (const DivideZero dz) { dz.showMessage(); } catch (const ex* e) { e->what(); delete e; } cin >> a; } }在这里主要判断输入的值是否为0,输入为0,就抛出异常,在控制台显示。