- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计计使用CBuilder编程
下载
第8章 异 常 处 理
C + + B u i l d e r支持C + +异常处理、基于C 的结构异常处理以及V C L异常处理。
注意本章中所用的关于 C + +异常处理及结构异常处理的例子通过命令行使用 b c c 3 2 . e x e可成功地编译
并运行,而不是使用I D E 。在调用标准C + +例程及对象时可用C + +异常处理。
V C L 异常处理可在I D E 内进行。实际上,尽管C + + B u i l d e r支持C + +异常处理和基于C 的结构异常处
理。但使用C + + B u i l d e r和V C L 可开发包含内嵌异常处理的例程的应用程序,这些例程可以在出现错误时
自动发送异常。
8.1 C++异常处理
异常是指需要特殊处理的例外情况,包括运行时发生的错误,如除数为零,存储空间不足等。异常
处理提供了一种标准的方法以处理错误,发现可预知及不可预知的问题,及允许开发者识别、查出和修
改错漏之处(b u g s )。
8.1.1 异常处理的ANSI规定
C + + B u i l d e r异常处理支持A N S I / I S O 提议的 C + +工作标准。发送异常可允许你收集发送点的信息,
这将有助于诊断异常发生的原因。
可使用异常处理程序来确定程序终止之前的操作。只有同步异常(错误都由程序内部引起)可被处
理。外部事件(例如按下 C t r l + C组合键)不被认为是一个异常。
C + +语言规定所有的异常都应在一个 t r y - b l o c k 中被发送。这个块之后紧接着是一个或多个 c a t c h块,
用于识别和处理t r y - b l o c k 中发生的错误。
8.1.2 异常处理语法
异常处理要求使用三个关键字: t r y 、c a t c h及t h r o w 。程序通过可能产生特殊状况的 t r y i n g 语句以准
备捕捉异常。当 C + +程序发送一个异常时,可将控制转移或 t h r o w到程序另外的被称为异常处理程序的、
用于处理该类异常的部分中去。这种处理程序被称为 c a t c h异常。
程序通过执行t h r o w语句来发送异常。t h r o w语句通常在一个函数内发生。
在这个例子中,语句发送一个描述异常类型的对象,在这里,是一个算术运算溢出。从而程序的另
一部分可捕捉并处理这个异常对象。
要使用异常处理,需将代码封闭在一个 t r y / c a t c h结构中,t r y / c a t c h结构的语法如下:
114计计第一部分 使用C++Builder编程
下载
注意 C 程序中不支持try 、catch及throw关键字。
一个由t r y确定的t r y - b l o c k后必须紧接着一个由 c a t c h确定的处理程序。t r y - b l o c k是一段用于确定程序
执行时的控制流的语句。若一个异常在 t r y - b l o c k 中被发送,程序控制被转移到适当的异常处理程序。
处理程序是一段被设计来用于处理异常的代码。 C + +语言要求至少有一个处理程序紧接着 t r y - b l o c k 。
程序应包括一个可处理程序中可能发生的各个异常的处理程序。
8.1.3 声明异常
虽然C + +允许异常可为任意类型,但异常对象还是很有用的。异常对象可当作其他对象一样看待。
异常对象将异常发送点的信息携带到异常对象被捕捉的地方。应用程序的用户在程序运行时遇到不正常
的情况时会很需要这些信息。
由C + +语言预定义的异常,在联机帮助中的“ Library Reference ”中介绍。
8.1.4 发送异常
可能发生异常的代码块需以 t r y 为前缀同时封闭在花括号内。这表明程序准备检查异常。若异常发
生,则程序流中断,然后会发生:
• 程序搜索匹配的处理程序。
• 若找到处理程序,则栈在该点被打开。
• 程序控制转到处理程序。
• 若没有找到处理程序,可调用 s e t _ t e r m i n a t e ()以提供终止处理程序,否则,程序会调用t e r m i n a t e
函数。
文档评论(0)