当前位置: 首页 > news >正文

使用__try...__except和try...catch捕获异常实例分享(附源码)

 在C/C++的代码中,为了防止代码块执行的过程中产生异常导致软件崩溃,我们会给代码块添加__try...__except或try...catch保护,防止软件因为操作内部触发的异常产生崩溃。本文简单地介绍一下这两种异常捕获的使用示例。

1、概述

       当软件运行过程中代码抛出异常,如果异常没有处理,且异常不可自动恢复,会导致软件崩溃闪退。C/C++中提供了异常保护机制,可以捕获到异常并处理掉,这样软件不会因为一些操作的内部错误而产生崩溃,软件可以正常的运行下去。

       C语言中提供了SEH结构化异常捕获__try...__except,C++中则在__try...__except基础上提供了C++版本的try...catch机制,使用try...catch可以捕获到代码抛出的多种类型的异常,比如捕获到抛出的异常类信息。

2、使用C版本的__try...__except捕获异常

       C语言版本的__try...__except的声明如下:

__try 
{// guarded code
}
__except ( expression )
{// exception handler code
}

       我们在调用API函数HtmlHelp打开.chm帮助文档时,如果指定路径中的.chm文件不存在(可能是路径不对,也可能是文件被删除了),HtmlHelp函数内部会抛出异常,软件会发生崩溃。后来我们直接添加__try...__except去捕获异常,对调用HtmlHelp的代码添加保护,保证即使.chm文件不存在,也不能让软件发生崩溃,相关代码

http://www.lryc.cn/news/370558.html

相关文章:

  • 基于51单片机的简易温控水杯恒温杯仿真设计( proteus仿真+程序+设计报告+讲解视频)
  • 王德峰视频讲座,王德峰视频全部大全集,百度云百度网盘资源下载
  • Visual Studio和BOM历史渊源
  • 虚拟现实(VR)游戏与增强现实(AR)游戏的区别
  • git已经设置了自己的账号和密码,提交信息还是别人解决方法
  • 探索面向对象与并发编程的完美融合:Java中的实践与思考
  • 探索在线问诊系统的安全性与隐私保护
  • How To: Localize Bar and Ribbon Skin Items
  • 通过 urllib 结合代理IP下载文件实现Python爬虫
  • 单线服务器与双线服务器的区别?
  • 使用Hadoop MapReduce实现各省学生总分降序排序,根据省份分出输出到不同文件
  • LeetCode | 66.加一
  • Oracle最终会扼杀MySQL?(译)
  • 分布式物联网平台特点
  • 【学习笔记】Linux文件编译调试相关(问题未解决)
  • 微信小程序毕业设计-驾校管理系统项目开发实战(附源码+论文)
  • 【多线程】进程与线程
  • 【文献阅读】一种多波束阵列重构导航抗干扰算法
  • 前端传递bool型后端用int收不到
  • 巴伦在接收链路中的应用
  • React常见面试题(2024最新版)
  • 【万方数据库爬虫简单开发(自用)】
  • 新渠道+1!TDengine Cloud 入驻 Azure Marketplace
  • 自动化压测工具开发(MFC)
  • 【嵌入式DIY实例】-Nokia 5110显示DHT11/DHT22传感器数据
  • C# —— 字符串拼接
  • css3新增的伪类有哪些
  • 低代码开发:企业供应链数字化的挑战与应对
  • 线程池的创建与使用
  • C++ 中的负无穷大赋值