如何正确地使函数抛出std :: out_of_range异常

问题描述 投票:0回答:1
else
{
    // figure out how to fo out of range excetpion.
    throw std::out_of_range("An exception occurred: Grade must be between 0.000000 and 100.000000");
    //throw std::out_of_range("Grade points must be between 0.000000 and 100.000000.");
}   

我收到错误:

Percentage grade: 10000
terminate called after throwing an instance of 'std::out_of_range'
  what():  An exception occurred: Grade must be between 0.000000 and 100.000000"

我如何删除它?:

terminate called after throwing an instance of'std::out_of_range'
  what():"
c++ throw outofrangeexception
1个回答
0
投票

您可以删除此:

terminate called after throwing an instance of'std::out_of_range'
  what():"

通过使用类似的代码,如下所述:

int x = 10;
int y = 0;
int z = 0;

try {
    if (y == 0) throw ("Something wrong going on!"); // throwing string as error

    z = x / y;

    std::cout << z << std::endl;

} catch (const char *m) {
    std::cerr << m << std::endl; // printing error
}

您得到类似的东西:

Something wrong going on!

消息。当您使用std::out_of_range之类的函数时,它将显示有关程序执行期间实际从何处抛出的信息。您可以通过不使用函数来抑制它,而直接在throw语句中使用字符串。

© www.soinside.com 2019 - 2024. All rights reserved.