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

标签 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;
    }
}

最佳答案

因为您没有抛出 char*,所以您抛出了 const char*

此外,已经存在一个预制的异常类:std::range_error .

关于c++ - 为什么这个 c++ 程序不处理异常并为负数提供核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20088755/

相关文章:

c++ - 如何加载同一家族的多种字体

c++ - 构建新库时包含库中的头文件

c++ - Project Euler #1 测试扩展

c++ - 编写一个带有我自己的异常的包装器

python-3.x - 错误处理函数的有效方法

c++ - 如何在 Windows 7 平板设备中使用 C++ 调出屏幕键盘?

c++ - 使用模板减少 const 和非 const 非成员函数的代码重复

android - 与 SupervisorJob 的协程 - 取消行为

c++ - 我如何从ptree异常中获取xml行号

c++ - 将 C++ 项目与 visual studio 中的表单项目链接起来