我的成绩函数中有一个throw domain_error(“学生未完成任何功课”)异常,如果用户未输入作业成绩,导致矢量大小为0。那么我在主函数中调用了此函数,在try and catch块中,编译器发出警告。
主要功能的局部视图
read_hw(cin,homework);
try
{
double _final_grade = grade(midterm,_final,homework);
streamsize prec = cout.precision();
cout << "Your final grade is "<<setprecision(3) << _final_grade <<
setprecision(prec) << endl;
}
catch(domain_error)
{
cout << "You must enter your grades. Please try again" <<endl;
return -1;
}
答案 0 :(得分:0)
应该通过引用而不是按值捕获异常。
使用
catch(domain_error &)