我对异常的理解_temp2

try的英文意思就是尝试 例如 try to do sth. 意思就是说尝试着做一些事情,你试着做的时候可能会成功,也可能不成功,成功了最好,但是不成功也没有事情的,因为毕竟是尝试嘛.

我觉得老外在C++里面的异常中使用try这个关键字很形象,try{...}这个try块的意思就是说你试着做大括号里面的事情,如果出了错,也没有关系,就当我们什么都没有做过.其实,在这里try{...}实现了一个我们生活中不能实现的事情,就是说,一切可以重来,如果当年世界杯上巴乔是在try{}里面踢那个点球的话,该有多好啊!

而C++是怎么实现一切可以重来这个目标的呢? 我觉得就是堆栈解退, 当我们开始执行try{...}大括号里面的代码时,肯定会给里面的变量分配内存,如果在执行的时候遇到错误,那么从try左大括号往后分配的内存都要收回来.这就相当于什么都没发生过一样.唯一前进的只有时间, 呵呵.

下面我们就用巴乔罚点球这个事作为例子写个代码吧 呵呵

 

呵呵 写的例子感觉不太贴切,以后有机会再改吧. 

 还有一个小问题就是说,当堆栈解退时,如果需要释放内存的是个对象,并且这个对象里面有个指针成员,并且指向了new分配的内存,那么,堆栈解退会使这个对象的类的析构函数被调用来释放new分配的内存.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值