欢迎来到天天文库
浏览记录
ID:36618205
大小:264.60 KB
页数:3页
时间:2019-05-13
《基于C异常处理机制的研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、计算机技术与发展V()1.17No.1第21700瓣7戳期年1月COMPt兀ERTECHN()LOGYANDDEVELOPMENTJan.2007基于C++异常处理机制的研究王方良,汤文成(东南大学,江苏南京210096)摘要:异常处理是程序开发的一个重要内容,异常处理的好坏关系到程序的友好程度和系统的稳定性。C++是一种纯面向对象的编程语言,其异常处理机制和普通的编程语言有很多不同的地方,有力地增强了C++程序的健壮性和容错性。文中从介绍其运行步骤人手,通过一个简单的例子,详细阐述了C++异常处理机制的规则和栈展开技术,并扼
2、要地对比了函数调用和异常处理的异同点,以便更好地在C++面向对象程序设计中正确使用异常处理机制。关键词:C++;异常处理;栈展开中图分类号:TP311文献标识码:A文章编号:1673—629X(2007)01—0128—02DiscussionontheExceptionHandlingofC++WANGFang-liang,TANGWen—cheng(SoutheastUniversity,Nanjing210096,China)Abstract:Exceptionhandlingplaysasignificantrolei
3、nprogrammingdevelopment.Itsperformancewillinfluencethefriendlinessandsta.bilityofthesystem.Asacompleteobjectorientedprogramminglanguage.theexceptionhandlingmechanismofC++isverydifferentfromotherprogramminglanguage。andeffectivelyimpmvesrobustnessandtoleranceofthepmgr
4、arns.Thispaperbeganwiththeintroduc-tionoftherunningsteps,andthenillustratedtheruleofexceptionhandlingmechanismandthetechnologyofstackunwindingbyatestexample.Finallyitconciselycomparedthesimilaritiesanddifferencesoffunctiontransferringandexceptionhandlinginordertom8k
5、epre—ciseuseofthemechanismintheobjectorientedprogramming.Keywords:C++;exceptionhandling;stackunwinding面向对象的C++程序设计语言可以编写大型和十,分复杂的程序,这样的程序往往会产生一些很难查找甚至try{..-throwE;}是无法避免的运行时错误。当发生运行时错误时,不能简catch(⋯){..·}单地结束程序运行,而是退回到任务的起点,指出错误,并catch(⋯){..·}⋯:由用户决定下一步工作。面向对象的异常处理(E
6、xception首先C++用try代码块激活异常处理程序即进行异Handling)机制便是C++语言用以解决这个问题的有力工具,并成为提高程序健壮性和容错性的重要手段之一。常定义,try代码块由关键字try后紧跟{}组成,{}中封装了可能导致异常的语句;然后用throw语句抛出可以是任1异常处理的运行步骤及规则何类型的异常数据对象(当然,throw语句并不一定放在1.1运行步骤try代码块中,也可在其之前或之后);最后用catch代码块异常表示程序在执行过程中发生的问题,异常的出现对异常进行捕获和处理。很难避免。20世纪80年
7、代末的一项研究表明,一个程序在这三个步骤中catch代码块较为复杂。catch代码里处理错误的代码可能达到整个代码量的2/3⋯,由此可块由三部分组成:关键字catch、圆括号中的异常声明(Ex.见异常处理在编程中的重要性。基于此C++引入了异ceptionDeclaration)以及复合语句中的一组语句。注意这常处理机制,它主要包括异常定义、异常抛出和异常捕获不是函数,所以圆括号中不是形参,而是一个异常类型声及处理三个关键步骤旧J。对应的程序形式分别是try代明,可以是类型也可以是对象。catch子句与函数的不同码块、thro
8、w代码块和catch代码块:之处在于:它只有一个子句,没有定义和调用之分}3I。使用时由系统按规则自动在catch子旬列表中匹配。至少从收稿日期:2006一04一06逻辑上讲,没有函数的定义与调用。关于异常处理与函数作者简介:王方良(1977一),男,河南人,硕士研究生,研究
此文档下载收益归作者所有