我珍贵的朋友
为什么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;
}
2条答案
按热度按时间to94eoyn1#
你所做的并不抛出异常,因此你可以捕获任何东西。一个错误(可能是一个低级异常被抛出),但它不是你可以用处理程序管理的。
其他时候,像这样捕获异常:
qxgroojn2#
你们的代码都不会抛出异常。
这就是为什么它没有被抓住(因为没有一个)。
通常,您需要检查读操作的状态,以确保它显式地工作。
以上是正常的处理方法。
但是您可以使流引发异常。