先上简单用法(《C++ Primer》课后题答案):
#include<iostream>
#include<stdexcept>
using namespace std;
int main()
{
int a,b,c;
while(cin>>a>>b)
{
try// try里写可能引发异常的代码
{
if(b==0)
throw exception("dividend can't be 0!"); //抛出异常
else
cout<<"the result of a/b is "<<a/b<<endl;
}
catch(exception e)// 捕获并处理异常
{
cout<<e.what()
<<"\nTry Again? Enter y or n"<<endl;
char c;
cin>>c;
if(!cin||c=='n')
break;
}
}
}
不同异常可以参见这个表:
不过一般来说第一个exception就够用了......
关于C++中的异常机制的讨论可以看这个:点击打开链接。夜深了,睡觉zzz