c++关于抛出异常以及空指针异常的捕获

文章讨论了C++中异常处理的机制,指出通过try-catch结构用户可以自定义抛出和捕获异常,但这对硬件异常如空指针和除0错误无效。在VC环境下可通过SEH机制捕获这类异常,而在Linux中可利用系统API。然而,最佳实践仍是确保编程逻辑的正确性以防止异常发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以先参考一下这个文章:【C++】异常处理_c++ 抛出异常_曦樂~的博客-CSDN博客

try

{

xx;

throw exception("hello");

}

catch

{

xx

}

try语句里由用户自己抛出一个异常,然后catch语句自己捕获进行进一步操作,就是自导自演行为,所以这个我觉得没太大意义,因为可以通过返回值也能直接知道异常情况。而像空指针异常,除0这些硬件异常,这个方法是无法自动捕捉的,软件会直接崩溃。

yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs=wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

那么有没有真正的能自己捕获空指针,除0等异常呢,能,有两种:

1. VC集成开发环境中,菜单中设置一下,可以,但是是依赖编译器等,SEH机制,MSVC,c++ 程序中实现抛出异常_c++ 抛出异常_AndyCheng_hgcc的博客-CSDN博客

2. Linux中,通过系统提供的api也可以,当C++遇到空指针异常......_c++捕获空指针异常_柴郡猫乐园的博客-CSDN博客

所以,一般编程,还是老老实实保证逻辑的正确性吧,这样就不出现访问空指针了 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值