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

Che*_*eng 2 c++

通过引用C++捕获所有异常

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

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

Jam*_*lis 7

如果取消引用不指向对象的指针,则不会出现异常,您将获得未定义的行为.任何事情都可能发生.

通常,如果取消引用空指针,就像在示例中一样,程序将崩溃.