没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
64页
异常处理的编程方法,程序员都很熟悉的一个东东,她和面向对象的方法是软件程序设计发展史上其中最重要的两项革新技术。现代程序设计语言拥有的一个重要的特性就是能较好地支持异常的处理(Exception Handling)。她就像一位美丽而优雅的公主,帮助程序员写出来的代码总是那样的整齐美观、层次清晰;同时它好像还是一位贤惠能干的贤内助,总能帮你料理好由于考虑不全所留下的多多少少的意外事件,她在背后默默的支持你的一切,使你写出来的作品是那样的高效、安全和完美。
资源推荐
资源详情
资源评论
C++异常处理的编程方法
主人公介绍
阿愚,曾经是一位小小程序员,现在仍是一位小小程序员,将来也还是一位小小程序员。读程序、写
程序一直就是他的最爱,这过程给他带来许许多多的快乐,虽然期间也有过一些迷茫,但每次冲过迷雾,
重见阳光的喜悦总是他对程序人生的更加执著追求。雨过天晴的空气才是最清新的。
异常处理的编程方法,程序员都很熟悉的一个东东,她和面向对象的方法是软件程序设计发展史上其
中最重要的两项革新技术。现代程序设计语言拥有的一个重要的特性就是能较好地支持异常的处理
()。她就像一位美丽而优雅的公主,帮助程序员写出来的代码总是那样的整齐美
观、层次清晰;同时它好像还是一位贤惠能干的贤内助,总能帮你料理好由于考虑不全所留下的多多少少
的意外事件,她在背后默默的支持你的一切,使你写出来的作品是那样的高效、安全和完美。瞧!它深深
地打动了我们我们的主人公阿愚,并续上了一段美丽的编程爱情故事。
内容的组织及编排
相遇篇
《第 集 初次与异常处理编程相邂逅》
《第 集 中异常处理的游戏规则》
《第 集 中 (…)如何使用》
《第 集 的异常处理和面向对象的紧密关系》
《第 集 的异常 》
相知篇
《第 集 对象的成员函数中抛出的异常》
《第 集 构造函数中抛出的异常》
《第 集 析构函数中抛出的异常》
《第 集 的异常对象如何传送》
《第 集 的异常对象按传值的方式被传递》
《第 集 的异常对象按引用方式被传递》
《第 集 的异常对象按指针方式被传递》
《第 集 异常对象三种方式传递的综合比较》
《第 集 再探 中异常的 》
《第 集 语言中的异常处理机制》
《第 集 语言中一种更优雅的异常处理机制》
《第 集 全面了解 ! 与 ! 的使用》
《第 集 玩转 ! 与 !》
《第 集 ! 与 ! 机制,很难与 和睦相处》
《第 集 中如何兼容并支持 语言中提供的异常处理机制》
《第 集 " 系列操作系统平台中的提供的异常处理机制》
《第 集 更进一步认识 #》
《第 集 # 的强大功能之一》
《第 集 # 的强大功能之二》
《第 集 # 的综合》
《第 集 # 可以在 程序中使用》
《第 集 # 与 异常模型的混合使用》
《第 集 $% 中的异常处理模型》
《第 集 & 操作系统提供中的异常处理机制》
相爱篇
《让异常成为函数接口的一部分》
《异常能够优雅地跨越组件》
《标准库中的异常分类模型》
《'( 类库中的异常分类模型》
《$)* 平台中的异常分类模型》
爱的秘密
《实现》
爱的结晶
《对现有模型的一些完善与改进》
第 1 集 初次与异常处理编程相邂逅
和其它很多程序员一样,本书的主人公阿愚也是在初学 时,在 的 ! 代码中与异常
处理的编程方法初次邂逅的,如下:
++,!!!
---
.
/
++0!!-
1
234
/
++-
++556!70-
89)24:
1
++;!!!
瞧瞧,代码看上去显得那么整齐、干净,.7< 和 7< 遥相呼应,多有对称美呀!因此
主人公初次见面后就一见钟情了。
为什么要选用异常处理的编程方法?
当然更为重要的是,中引入的异常处理的编程机制提供给程序员一种全新的、更好的编程方法
和思想。在 中明确提出 . 异常处理编程方法的框架之前的年代,程序员是怎样编写程序的,
如下:
%!2=3%>?4
/
62@(02=!04
/
++函数调用成功,我们正常的处理
62@(02=!04
/
++函数调用成功,我们正常的处理
24
/
++ 7
624
/
++函数调用失败,表明程序执行过程中出现一些错误,
++因此必须处理错误
@24:
24:
1
++ 7
1
1
/
++函数调用失败,表明程序执行过程中出现一些错误,
++因此必须处理错误
@24:
24:
1
1
/
++函数调用失败,同样是错误处理
@24:
24:
1
1
因为程序的执行过程中总会遇到许多可预知或不可预知的错误事件,例如说,由于内存资源有限导致
需要分配的内存失败了;或某个目录下本应存在的一个文件找不着了;或说不小心被零除了、内存越界了、
数组越界了等等。这些错误事件存在非常大的隐患,因此程序员总需要在程序中不断加入 6 语句,来判断
是否有异常出现,如果有,就必须要及时处理,否则可能带来意想不到的,甚至是灾难性的后果。这样一
来,程序可读性差了很多,总是有许多与真正工作无关的代码,而且也给程序员增加了极大的工作负担,
多数类似的处理错误的代码模块就像满山的牛屎一样遍地都是(程序员不大多是“牛”人吗?所以。。。哈
哈)。
但 中的异常处理的机制彻底改变了这种面貌,它使真正的计算处理和错误处理分开来,让程序
员不再被这些琐碎的事情所烦扰,能关注于真正的计算处理工作。同时代码的可读性也好了。因此我们有
理由选择异常处理的编程方法。具体原因如下:
、 把错误处理和真正的工作分开来;
、 代码更易组织,更清晰,复杂的工作任务更容易实现;
、 毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了;
、 由于 中的 . 可以分层嵌套,所以它提供了一种方法使得程序的控制流可以安全的
跳转到上层(或者上上层)的错误处理模块中去。(不同于 0 语句,异常处理的控制流是可以安全
地跨越一个或多个函数 )。
、 还有一个重要的原因就是,由于目前需要开发的软件产品总是变得越来越复杂、越来越庞大,如
果系统中没有一个可靠的异常处理模型,那必定是一件十分糟糕的局面。
相信绝大多数程序员都知道 中的异常处理的编程方法,可还是有很多人已习惯原来单纯的面向
过程的代码组织方式,不太习惯或较少使用 . 异常处理。为了使您编写的代码更安全;为了使您
编写的代码让他人更易阅读,主人公阿愚强烈建议在您书写的代码中尽可能多用异常处理机制,少一些不
必要的 6 判断语句。
下一集详细介绍 中的异常处理的语法。
第 2 集 C++中异常处理的游戏规则
如果您喜欢玩一款游戏,您必须先要很好理解这款游戏的规则。同样主人公阿愚喜欢上 中异常
处理后,当然也首先关注它的游戏规则,这就是 中异常处理的语法。
关键字
、 .
、
、
其中关键字 . 表示定义一个受到监控、受到保护的程序代码块;关键字 与 . 遥相呼应,定
义当 .7<(受监控的程序块)出现异常时,错误处理的程序模块,并且每个 7< 都带一个
参数(类似于函数定义时的数那样),这个参数的数据类型用于异常对象的数据类型进行匹配;而
则是检测到一个异常错误发生后向外抛出一个异常事件,通知对应的 程序块执行对应的错误处理。
语法
、还是给一个例子吧!如下:
!24
/
0AA5B!-5AA:
++定义一个 .7<,它是用一对花括号/1所括起来的块作用域的代码块
.
/
0AA5在 .7<中=准备抛出一个异常-5AA:
++这里抛出一个异常(其中异常对象的数据类型是 ,值为 )
++由于在 .7< 中的代码是受到监控保护的,所以抛出异常后,程序的
++控制流便转到随后的 7< 中
:
0AA5在 .7<中=由于前面抛出了一个异常,因此这里的代码是不会得以执行到的5AA:
1
++这里必须相对应地,至少定义一个 7<,同样它也是用花括号括起来的
2C%04
/
0AA5在 7<中=处理异常错误。异常对象 %0 的值为:5AA%0AA:
1
0AA5D<!-00!-5AA:
0:
1
、语法很简单吧!的确如此。另外一个 .7< 可以有多个对应的 7<,可为什么要多
个 7< 呢?这是因为每个 7< 匹配一种类型的异常错误对象的处理,多个 7<
呢就可以针对不同的异常错误类型分别处理。毕竟异常错误也是分级别的呀!有致命的、有一般的、有警
告的,甚至还有的只是事件通知。例子如下:
!24
/
剩余63页未读,继续阅读
资源评论
- 张三oO2020-12-21没有网页看起来舒服,内杠杠的
- xzsfg68252018-05-18这篇文章整理的相当棒,学习了
- hgn_carrier2011-10-20这个文章很好啊,讨论C++异常处理很详细
cnjacky
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 人工智能实验四 感知器算法的设计实现
- java小项目多线程多线程 复制文件 冒泡排序 群聊
- 四数之和(java代码).docx
- 701837906919458TapScanner v3.0.10 (Pro).apk
- 青岛大学人工智能实验二 利用α-β搜索的博弈树算法编写一字棋游戏
- ### 1、项目介绍 本项目Scrapy进行数据爬取,并使用Django框架+PyEcharts实现可视化大屏 效果如下:
- # 微信小程序-健康菜谱 基于微信小程序的一个查找检索菜谱的应用 ### 效果 !动态图(./res/gif/demo
- zabbix-get命令包资源
- 289ssm-mysql-jsp 计算机课程实验管理系统.zip(可运行源码+数据库文件+文档)
- 毕业设计,基于PyQt5实现的可视化界面的Python车牌自动识别系统源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功