我正在研究C ++ 2个月,我在理解C ++中的try-catch块时遇到了一些问题。我正在使用这本书:编程原理和使用C ++的练习,这是我的书中所说的:
异常的基本思想是,如果函数find是一个无法处理的错误,它就不会正常返回,而是抛出一个指示出错的异常。任何直接或间接调用者都可以捕获异常,也就是说,如果被调用的代码使用 throw ,则指定要执行的操作。
“任何直接或间接调用者可以使用异常意味着什么?作者是指函数的调用者还是函数?”。我对此感到困惑,你能以简单的方式向我展示它吗?
答案 0 :(得分:4)
间接通话示例: 这里异常发生在被调用函数中。但try catch放在调用函数中,而不是被调用函数。
#include <iostream>
#include <exception>
using namespace std;
void divideByZero(){
int a = 5;
int b = a / 0;
throw(b);
}
int main()
{
try{
divideByZero();
}
catch (exception& e){
cout<<e.what()<<endl;
}
return 0;
}
直接例外的示例: 这里异常直接发生在函数本身,并在那里处理。
#include <iostream>
using namespace std;
int main()
{
try{
int a = 5;
int b = a / 0;
throw(b);
}
catch (exception& e){
cout<<e.what()<<endl;
}
return 0;
}
上述程序仅用于说明,而不是用于编写有用程序时可能遇到的任何实际示例。