C++ try catch 捕获空指针异常,数组越界异常
#include <exception> #include <iostream> using namespace std; /********************************** //project -> Properties -> C/C++ -> Code Generation --> Enable C++ Exceptions //选择 Yes with SEH Exceptions (/EHa) 这样的话C++的try catch 也可以捕获到空指针,内存越界,0除异常 //默认是选择Yes (/EHsc) **********************************/ void TestIntType() { try { throw 1; } catch(...) { cout<< "在 try block 中, 准备抛出一个异常." << endl; } } void TestDoubleType() { try { throw 0.5; } catch(...) { cout<< "在 try block 中, 准备抛出一个异常." << endl; } } void TestEmptyPointType() { try { int* p = NULL; *p = 3; } catch(...) { cout<< "非法地址操作异常" << endl; } } void TestDivZeroType() { try { int b = 0; int a = 3/b; } catch(...) { cout<< "0除异常" << endl; } } void TestMemoryOutType() { int * a = new int[4]; try { for (int i = 0; i<245; i++) { a++; } *a = 3; } catch(...) { cout<< "内存越界异常" << endl; } } int main(int argc, char* argv[]) { TestEmptyPointType(); //TestDivZeroType(); TestMemoryOutType(); return 1; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器