C++异常处理机制的作用(个人理解)

之前一直没有对异常处理机制有个好的认知,总感觉这个东西有些鸡肋。
但最近在写C++/MFC/Halcon开发的程序的时候突然感觉领会了一些异常处理机制的作用,现记录下来。
Halcon算法有时会碰到这种问题,台式机没有连接摄像设备,但是Halcon写的算法需要进行图像处理,没有图像怎么办呢?报错就完了,可是Halcon报错不是一般的报错,只要Halcon函数使用出现错误,直接就挂掉程序,就像下面这样
在这里插入图片描述
这谁顶得住呀,这要是给别人来用,点一下崩一次,点一下崩一次,岂不是玩完了?
然后我想了一个办法,这还不简单吗,执行语句之前我先判断条件是否满足,用if-else就完事了,可是写着写着我又发现一个问题。。。有些错误的多样性远远不是想的那么简单,最主要的是有些错误没法儿提前预知啊,比如根据路径读取一张图片,用if-else得判断路径对不对、有没有图等等,写一两个还好,如果每个处理的地方都要写这些,那。。。
这时候,主角登场了,异常处理机制try-catch,解决了上述的两个问题:1)程序出错直接崩溃 ;2)错误类型判断。
在这里插入图片描述
代码大体如上图所示,这时候试着(try)执行第一句caltab_points,如果错误就回抛出(throw)一个错误被下面的catch给接住,这时候就可以在catch的代码块中做出相应的处理,这里我就直接结束了这整个函数的执行,return 0;返回一个执行失败的信息给上级调用函数并且用一个对话栏来显示错误信息和错误码,如果需要解决这个问题,除了根据错误提示来找问题,还可以根据错误码来寻找对应的解决方案,错误提示如下图,这样既保证了程序执行遇到错误时不挂掉,也友好地提示出了错误的信息。
在这里插入图片描述
这些只是对庞大的异常处理机制一个粗略的个人理解,如有错误欢迎指出!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值