【发布时间】:2015-07-11 20:07:46
【问题描述】:
我亲爱的朋友们;
为什么 c++ 在这个例子中不能捕获异常?你能解释一下吗?我尝试了很多,但还是不行。如果我在 cmd 中输入一个字符,catch 块不起作用。
try {
int dX = 0;
cin >> dX;
dX = static_cast<double>(10 / dX);
cout << dX << endl;
}
catch (conts std::exception &exp) { // if I input any of chars, it doesn't catch?
cerr << "Error: " << exp->what() << endl;
}
【问题讨论】:
-
std::istream不会对无效输入抛出异常,除非您明确告诉它这样做。 -
一个也不捕获指向异常的指针,而是一个引用。
-
只是为了在@BaummitAugen 的(正确)声明中添加一个带有基本原理的参考 - here。