【精品】c c++语言程序设计(西电版第14章 异常处理(可编辑.ppt
《【精品】c c++语言程序设计(西电版第14章 异常处理(可编辑.ppt》由会员分享,可在线阅读,更多相关《【精品】c c++语言程序设计(西电版第14章 异常处理(可编辑.ppt(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C C+语言程序设计(西电版)第14章 异常处理第十四章第十四章 异常异常处理理14.1 异常异常处理机制理机制14.2 异常异常处理的理的实现14.3 异常异常规范范14.4 小小结14.1异常异常处理机制理机制l lC+C+语语言异常言异常言异常言异常处处理机制的基本思想是将异常的理机制的基本思想是将异常的理机制的基本思想是将异常的理机制的基本思想是将异常的检检测测与与与与处处理分离。当在一个函数体中理分离。当在一个函数体中理分离。当在一个函数体中理分离。当在一个函数体中检测检测到异常条到异常条到异常条到异常条件存在,但却无法确定相件存在,但却无法确定相件存在,但却无法确定相件存在,但却无
2、法确定相应应的的的的处处理方法理方法理方法理方法时时,该该函函函函数将引数将引数将引数将引发发一个异常,由函数的直接或一个异常,由函数的直接或一个异常,由函数的直接或一个异常,由函数的直接或间间接接接接调调用者用者用者用者捕捕捕捕获这获这个异常并个异常并个异常并个异常并处处理理理理这这个个个个错误错误。如果程序始。如果程序始。如果程序始。如果程序始终终没没没没有有有有处处理理理理这这个异常,最个异常,最个异常,最个异常,最终终它会被它会被它会被它会被传传到到到到C+C+运行系运行系运行系运行系统统那里,运行系那里,运行系那里,运行系那里,运行系统统捕捕捕捕获获异常后,通常只是异常后,通常只是异
3、常后,通常只是异常后,通常只是简单简单地地地地终终止止止止这这个程序。个程序。个程序。个程序。l l由于异常由于异常由于异常由于异常处处理机制使得异常的引理机制使得异常的引理机制使得异常的引理机制使得异常的引发发和和和和处处理不必理不必理不必理不必在在在在同一函数中。同一函数中。同一函数中。同一函数中。这样这样,底,底,底,底层层的函数可以着重解决具的函数可以着重解决具的函数可以着重解决具的函数可以着重解决具体体体体问题问题而不必而不必而不必而不必过过多地考多地考多地考多地考虑对虑对异常的异常的异常的异常的处处理;上理;上理;上理;上层调层调用者可以在适当的位置用者可以在适当的位置用者可以在适
4、当的位置用者可以在适当的位置设计对设计对不同不同不同不同类类型异常的型异常的型异常的型异常的处处理。理。理。理。14.2异常异常处理的理的实现l lC+的异常的异常处理机制通理机制通过throw、try和和catch三个三个语句来句来实现。一般情况下,被。一般情况下,被调用函数直接用函数直接检测到异常到异常处理条件的存理条件的存在,并使用在,并使用throw引引发一个异常;在上一个异常;在上层函数中,使用函数中,使用try监测函数确定是否引函数确定是否引发异常;异常;检测到的各种异常由到的各种异常由catch捕捕获并并作出相作出相应的的处理,从而使程序从理,从而使程序从这些异些异常事件中恢复常
5、事件中恢复过来。来。14.2.1 异常异常处理的理的语法法l lthrow语法法l ltry语法法throw;try 复合复合语句句 在此在此在此在此处处,编译编译器在器在器在器在执执行代行代行代行代码码中中中中寻寻找一个能找一个能找一个能找一个能够处够处理抛理抛理抛理抛掷类掷类型型型型异常的异常的异常的异常的catchcatch处处理程序理程序理程序理程序(或一个能或一个能或一个能或一个能处处理任何理任何理任何理任何类类型异常的型异常的型异常的型异常的catchcatch处处理程序理程序理程序理程序)。catchcatch处处理程序按其在理程序按其在理程序按其在理程序按其在trytry块块后
6、出后出后出后出现现的的的的顺顺序被序被序被序被检检查查。如果没有找到合适的。如果没有找到合适的。如果没有找到合适的。如果没有找到合适的处处理程序,理程序,理程序,理程序,则继续检查则继续检查下一个下一个下一个下一个动动态态封封封封闭闭的的的的trytry块查块查。此。此。此。此处处理理理理继续继续下去,直到最外下去,直到最外下去,直到最外下去,直到最外层层的封的封的封的封闭闭trytry块块被被被被检查检查完。完。完。完。l l如果匹配的如果匹配的如果匹配的如果匹配的处处理程序理程序理程序理程序未找到未找到未找到未找到,则则函数函数函数函数terminate()terminate()被自被自被
7、自被自动调动调用,用,用,用,该该函数的默函数的默函数的默函数的默认认功能是功能是功能是功能是终终止程序。止程序。止程序。止程序。l l如果找到一个如果找到一个如果找到一个如果找到一个匹配的匹配的匹配的匹配的catchcatch处处理程序理程序理程序理程序,且它通,且它通,且它通,且它通过值进过值进行捕行捕行捕行捕获获,则则其形参通其形参通其形参通其形参通过过拷拷拷拷贝贝异常异常异常异常对对象象象象进进行初始化。如果它通行初始化。如果它通行初始化。如果它通行初始化。如果它通过过引用引用引用引用进进行捕行捕行捕行捕获获,则则参量被初始化参量被初始化参量被初始化参量被初始化为为指向异常指向异常指向
8、异常指向异常对对象在形参被初始象在形参被初始象在形参被初始象在形参被初始化之后,化之后,化之后,化之后,“循循循循环环展开展开展开展开栈栈”的的的的过过程开始。程开始。程开始。程开始。l l例例例例14.1 14.1 处处理零异常。理零异常。理零异常。理零异常。l lcatch处理程序的理程序的出出现顺序序很重要,因很重要,因为在一个在一个try块中,异常中,异常处理程序是按照它出理程序是按照它出现的的顺序被序被检查的。只要找到一个匹配的的。只要找到一个匹配的异常异常类型,后面的异常型,后面的异常处理都将被忽略。理都将被忽略。例如,在下面的异常例如,在下面的异常处理理块中,首先出中,首先出现的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 【精品】c c+语言程序设计西电版第14章 异常处理可编辑 c+ 语言程序设计 西电版第 14 异常 处理 编辑
限制150内