c++ - 如何在 C++ 中捕获运行时错误

标签 c++

引用C++ catching all exceptions

try {
    int i = 0;
    int j = 0/i; /* Division by  0 */
    int *k = 0;
    std::cout << *k << std::endl;  /* De-reference invalid memory location. */
}
catch (...) {
    std::cout << "Opps!" << std::endl;
}

无法检测到上述运行时错误。或者,我对 C++ 异常处理功能的期望有误吗?

最佳答案

如果你取消引用一个不指向对象的指针,你不会得到异常,你会得到未定义的行为。任何事情都有可能发生。

通常,如果您取消引用一个空指针,就像您在示例中所做的那样,程序将会崩溃。

关于c++ - 如何在 C++ 中捕获运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2582282/

相关文章:

C++ 原子变量可见性

C++ 传递函数的问题(数学不加起来)

c++ - cusp继承Class和*.cu设备代码编译

C++ 段错误有时但

c++ - 不匹配运算符<<

c++ - Kruskal 算法,Kattis 中的运行时错误

c++ - 哪里应该使用ncurses刷新()?

c++ - C++中的动态库

c++ - 模板构造函数继承的标准符合语法是什么?

c++ - 限制指针和内联