在 gcc 上执行这个程序时,它对正数工作正常。但它不应该因为处理异常而因负数而崩溃。但它给出了核心转储。
#include <iostream>
using namespace std;
int main()
{
cout << "Enter a number: ";
double dX;
cin >> dX;
try
{
if (dX < 0.0)
throw "Can not take sqrt of negative number";
cout << "Going Good";
}
catch (char* strException)
{
cerr << "Error: " << strException << endl;
}
}
最佳答案
因为您没有抛出 char*
,所以您抛出了 const char*
。
此外,已经存在一个预制的异常类:std::range_error
.
关于c++ - 为什么这个 c++ 程序不处理异常并为负数提供核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20088755/