gpt4 book ai didi

c++ - 如何捕捉空指针异常?

转载 作者:IT老高 更新时间:2023-10-28 12:29:35 36 4
gpt4 key购买 nike

  try {
int* p = 0;
*p = 1;
} catch (...) {
cout << "null pointer." << endl;
}

我试图捕捉这样的异常,但它不起作用,有什么帮助吗?

最佳答案

C++ 中不存在“空指针异常”之类的东西。您可以捕获的唯一异常是 throw 表达式显式抛出的异常(另外,正如 Pavel 所指出的,标准 operator new dynamic_cast 等)。 C++ 中没有其他异常(exception)。取消引用空指针、除以零等在 C++ 中不会产生异常,它会产生未定义的行为。如果您希望在这种情况下抛出异常,您自己有责任手动检测这些情况并明确执行 throw。这就是它在 C++ 中的工作原理。

您似乎在寻找的其他任何东西都与 C++ 语言有关,而是特定实现的功能。例如,在 Visual C++ 中,系统/硬件异常可以“转换”为 C++ 异常,但这种非标准功能需要付出代价,通常不值得付出。

关于c++ - 如何捕捉空指针异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1823721/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com