欢迎来到天天文库
浏览记录
ID:48255481
大小:3.65 MB
页数:40页
时间:2020-01-18
《第7章—异常处理.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C#语言程序设计中国地质大学(北京)信息工程学院辛晓辉7.1异常处理概述讲解内容7.4抛出和重发异常7.2C#的异常类7.3异常的捕获处理第7章异常处理7.5自定义异常7.6checked和unchecked运算符异常处理程序错误分为三类:语法错误:指不符合C#语法规则的程序代码。编译时VS能够自动指出这类错误,并告知错误的位置和原因。一般通过简单的调试处理即可解决;逻辑错误:由于人为因素导致的错误(如算法设计错误、输入错误等),编译时不会出错,但结果不对。一般需要重新检查程序的执行流程以及算法是否符合要求来解决。运行错误:往往是由于在程序执行时遇到
2、了一些非法操作引起的。这类错误在程序编辑和编译时不会被发现,只有在运行时才会发现。程序在运行时发生错误,系统通常会给出一个错误提示信息,然后终止程序的运行。异常处理异常:指反常程序事件。指除用户错误操作之外的、可以预见但无法防范的问题,如:内存不够、文件不存在、网络突然中断等,这些问题正常情况下不发生,但发生时程序会给出提示并中断执行。“异常处理”的作用就是处理这类事件;“异常处理”的意义在程序开发阶段,提醒程序开发人员,及时处理由于计算机硬件、软件系统带来的问题;在程序使用阶段,提醒用户,说明出现问题的原因;从软件工程的角度考虑,“异常处理”可以保
3、证程序的健壮性和稳定性。【例7-0】传统程序设计中一般通过if语句进行“异常处理”。privatevoidbutton1_Click(objectsender,EventArgse){intNum1,Num2;doubleResult;Num1=Convert.ToInt32(textBox1.Text);Num2=Convert.ToInt32(textBox2.Text);if(Num2==0)textBox3.Text="除数为零";else{Result=Num1/Num2;textBox3.Text=Convert.ToString(Res
4、ult);}}7.1异常处理概述讲解内容7.4抛出和重发异常7.2C#的异常类7.3异常的捕获处理第7章异常处理7.5自定义异常7.6checked和unchecked运算符C#的异常类在C#中,所有的异常都派生于Exception类,该类包含在公共语言运行库中。该类有如下两个重要的属性。Message属性:string类型的只读属性,包含了对异常原因的描述。InnerException属性:Exception类型的只读属性,如果其值为null,则表示当前异常是由系统内部产生的或者根据相关条件直接抛出的。如果其值不为null,则表示当前异常是作为对另
5、一个异常的回答而被抛出的,产生当前异常的异常可以在InnerException属性中得到。C#的通用异常类C#的通用异常类通用异常类异常发生时机System.ArrayTypeMismatchException当因为存储元素的实例类型与数组的实际类型不匹配而造成数组存储失败时抛出System.IndexOutOfRangeException当试图通过一个比零小或者超出数组边界的下标来引用一个数组元素时抛出System.ArithmeticException一个异常的基类,它在进行算术操作时发生,如被零除和溢出时System.DivideByZeroE
6、xception当试图用整数类型数据除以零时抛出System.OverflowException当进行的算术操作、类型转换或转换操作导致溢出时抛出C#的通用异常类通用异常类异常发生时机System.OutOfMemoryException使用new来分配内存失败时抛出System.StackOverflowException当执行栈被太多未完成的方法调用耗尽时抛出:典型情况是指非常深和消耗很大的递归System.NullReferenceException在需要引用对象时,却访问到null引用时抛出System.TypeInitializationE
7、xception当一个静态构造函数抛出一个异常,并且在没有任何catch语句来捕获它的时候抛出System.InvalidCastException当一个从基本类型或接口到一个派生类型的转换运行失败时抛出7.1异常处理概述讲解内容7.4抛出和重发异常7.2C#的异常类7.3异常的捕获处理第7章异常处理7.5自定义异常7.6checked和unchecked运算符异常的捕获处理C#中,对异常的捕获处理通过try…catch…finally语句来进行。语句的格式为:try{语句组1;}catch(异常1){语句组2;}……catch(异常n){语句组n;
8、}finally{语句组n+1;}程序中需要执行的语句发生了“异常1”指定的异常时执行发生了“异常n”指定的
此文档下载收益归作者所有