问题及代码:
/*
*copyright (t) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:张晴晴
*完成日期:2016年6月17日
*版本号:v1.0
*问题描述:求商
*输入描述:除数不能为0,为0时报出错误,结束程序
*程序输出:
*/
#include<iostream>
using namespace std;
template <typename T>
T Div(T x,T y)
{
if(y==0)
throw y;//抛出异常
return x/y;
}
int main()
{
int x=5,y=0;
double x1=5.5, y1=0.0;
try//被检查的语句
{
cout<<x<<"/"<<y<<"="<<Div(x,y)<<endl;
cout<<x1<<"/"<<y1<<"="<<Div(x1,y1)<<endl;
}
catch(int)//异常类型
{
cout<<"除数为0,计算错误!"<<endl;//异常处理语句
}
catch(double)//异常类型
{
cout<<"除数为0,计算错误!"<<endl;//异常处理语句
}
return 0;
}
运行结果:
学习心得:
这里第一次就错误了,结束了程序,第二次的错误没往下进行,所以只输出一个”除数为0,计算错误“。
学习模板: