为什么这个c ++程序不处理异常并为负数提供核心转储

Dev*_*wal 1 c++ exception

在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;
    }
}
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 6

因为你没有投掷char*,你投掷了const char*.

此外,已经存在预先设定的异常类:std::range_error.