如何在CodeBlocks IDE上解决此警告,警告:按值[-Wcatch-value =]捕获多态类型'class std :: domain_error'

时间:2019-03-23 22:09:52

标签: c++ warnings

我的成绩函数中有一个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;
}

1 个答案:

答案 0 :(得分:0)

应该通过引用而不是按值捕获异常。

使用

catch(domain_error &)