【Cpp】第十三章-异常

异常

传统C中处理错误的方式

  以往我们在写C语言程序时,当用户的错误输入或者非期望结果发生时我们的程序有可能就会开始不正确的走向,此时我们为了程序的可靠性和健壮性往往需要对结果进行判断,并且防止一些非预期行为的发生。在C语言中我们程序在发生错误时我们往往会通过以下几种方式来阻止程序继续向错误方向执行,并且向外返回错误。

返回错误码

  返回错误码就是我们常说的返回值,每个函数都有一个返回值,我们可以返回一个整形数据来告知外部执行的函数发生了什么问题。可是这样的返回错误码的方式不便于使用,我们为了搞懂错误是什么还不得不去查询手册,而且如果在主函数中返回的话程序会直接返回错误码终止程序。

终止程序

  在C中有类似assert的断言函数供我们判断状态,保证错误的发生,可是当不符合assert的要求时,它会直接终止程序,并且给我们一个终止位置让我们自己去找错误,这不仅不便于查找错误甚至还让用户难以接收,谁都不想因为一点小错程序自己就会挂掉。

非本地跳转

  在C语言的标准库中有这么一组函数setjmplongjmp用于实现非本地跳转,setjmp用于设置跳转点,longjmp用于进行跳转(这里的跳转已经类似于Cpp的异常处理,异常处理也是在他们的基础上进行完善实现),但是他们两个并不常用。

Cpp异常处理

  Cpp的异常处理更加人性化,更加方便,它可以帮助用户更加直观的理解错误,并且还能保证程序可以不会退出继续按照我们的要求继续执行

关键字

  在Cpp中关于异常处理一共有三个关键字try,catch, throw
  try用于将有可能抛出异常的代码包裹,这些代码被称为保护代码。try后面必须至少跟一个catch
  throw用于抛出异常,throw必须在try包裹的保护代码中使用才能起到正常的效果。
  catch用于捕获异常以及处理异常,跟在try的后面。
  使用格式

try
{
    throw ...;
}
catch(...)
{
    
}
catch(...)
{
    
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值