Visual c++ 我们在哪里可以使用;试一试“接球”;例外呢? 如何抛出C++异常 C++异常处理 我对异常处理的理解很差(例如,如何为自己的目的定制throw、try、catch语句)
例如,我定义了一个函数如下:intcompare(inta,intb){…} 我希望函数在a或b为负时抛出一个带有消息的异常 在函数的定义中应该如何处理这个问题?一点也不。 函数的定义保持不变Visual c++ 我们在哪里可以使用;试一试“接球”;例外呢? 如何抛出C++异常 C++异常处理 我对异常处理的理解很差(例如,如何为自己的目的定制throw、try、catch语句),visual-c++,Visual C++,例如,我定义了一个函数如下:intcompare(inta,intb){…} 我希望函数在a或b为负时抛出一个带有消息的异常 在函数的定义中应该如何处理这个问题?一点也不。 函数的定义保持不变 int compare(int a, int b); 无论您是否抛出异常(忘记它,它被认为是不推荐的) 如果要在a或b为负时引发异常,请将以下代码放入方法实现中: 注意我们如何在catch子句中定义异常,以便您可以访问异常成员,例如ex.what(),在本例中,它会向您提供异常消息 “a和必须为正”
int compare(int a, int b);
无论您是否抛出异常(忘记它,它被认为是不推荐的)
如果要在a或b为负时引发异常,请将以下代码放入方法实现中: 注意我们如何在
catch
子句中定义异常,以便您可以访问异常成员,例如ex.what()
,在本例中,它会向您提供异常消息
“a和必须为正”
注意。 当然,您可以抛出其他异常类型(甚至您自己的自定义异常),但对于这个示例,我发现
std::logic\u error
最合适,因为它会报告。您可能需要阅读
int compare(int a, int b)
{
if(a < 0 || b < 0)
{
throw std::logic_error("a and be must be positive");
}
// the comparing code here
}
int result;
try
{
result = compare(42, -10);
}
catch(const std::logic_error& ex)
{
// Handle the exception here. You can access the exception and it's members by using the 'ex' object.
}