c语言_ 异常处理.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言_ 异常处理

10.5多个异常事件的处理 ~Exception() { delete [] msg; }; char *what() { return msg; } private: char *msg; }; 10.5多个异常事件的处理 void main() { char str[40]; char msg[]=不能打开文件--stuent.txt; ifstream fin(student.txt); try{ if(!fin) throw Exception(msg); } catch(Exception e) { coute.what()endl; return; } finstr; coutstrendl; fin.close(); return;} 小结 程序中错误是不可避免的,为了保证程序的健壮性,当有异常事件发生时,要努力保证程序能够正常终止。为了检测异常,程序中使用try 、throw和catch语句,完成程序运行时异常事件的检测、抛掷检测的异常事件的报告和处理异常事件。 try子句用来确定可能出现异常事件的代码的范围; throw子句用来抛出异常事件的类型和报告异常事件的内容; catch子句用来捕获并处理异常事件。 捕获并处理异常事件后,程序继续执行catch子句后的程序语句。如果抛出的异常事件没有被捕获,C++将执行默认的异常处理函数abort,强制终止程序运行。 Thank you ! 第10章 异常处理 C++程序设计 本章主要内容 异常处理的机制 C++异常处理的实现 标准程序库异常的用法 异常处理中的构造与析构 多个异常事件的处理 小结 10.1异常处理的机制--异常处里概述 异常:程序执行时遇到的任何错误情况或意外行为 异常处理: 异常处理就是指当程序出现这些错误后,给与恰当处理,为程序提供退出的安全通道 10.1异常处理的机制--异常处里概述 异常可能性: 代码或调用的代码(如共享库)中有错误; 操作系统资源不可用; 公共语言运行库遇到意外情况(如无法验证代码); 用户的错误操作等 10.1异常处理的机制 --传统的错误处理方法 #includeiostream #includefstream using namespace std; void main() { char str[40]; char msg[]=Connot open infile--hello.txt; ifstream fin(hello.txt); if(!fin) { coutmsgendl; } 10.1异常处理的机制 --传统的错误处理方法 else { finstr; coutstrendl; fin.close(); } return; } 10.1异常处理的机制 --传统的错误处理方法 弊端: 例如函数返回NULL代表出现异常,但是如果函数确实要返回NULL这个正确的值时就会出现混淆; 可读性降低,将程序代码与处理异常的代码混在一起; 由调用函数的程序来分析错误,这就要求客户程序员对库函数有很深的了解 。 10.1异常处理的机制 --传统的错误处理方法 要求: 需要更加灵活、程序可读性强、降低程序员劳动强度的处理方式。 C++ 异常处理机制: 在于当遇到异常时,系统不是马上终止运行,而是允许用户排除错误,继续运行程序,至少给出出错提示信息。 在大型复杂的软件系统中,函数之间有明显的分工和复杂的调用关系,发现错误的函数一般不具备处理错误的能力。这时只能导致一个异常,并抛出异常,让它的调用者捕获这个异常并处理,如果调用者也不能处理就传递给它的上级调用者,这样一直上传到能处理为止。如果始终没有处理就上交到C++运行系统,运行系统调用abort函数强行终止整个程序。 10.2异常的实现—异常处理过程 C++语言中: try、throw和catch语句就是用于实现异常处理的机制的程序子句: 1. 确定要保护的代码段 确定要保护的代码段(敏感代码)的工作由try子句来实现。如果预料某段代码可能出现异常,就将此段代码放在try语句块中。这段代码在运行时真的出现了错误,就通过其中的throw语句抛掷异常对象的类型和异常的内容。 10.2异常的实现—异常处理过程 2. 抛掷异常 抛掷异常的工作由throw子句来实现,在受保护的可能产生异常的语句中进行错误检测,如有异常就通过throw语句抛掷异常对象的类型和异常的内容。 3

文档评论(0)

mydoc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档