面向对象程序设计(C#)教学课件 李法平 第6章

上传人:w****i 文档编号:94557471 上传时间:2019-08-08 格式:PPT 页数:21 大小:1.29MB
返回 下载 相关 举报
面向对象程序设计(C#)教学课件 李法平 第6章_第1页
第1页 / 共21页
面向对象程序设计(C#)教学课件 李法平 第6章_第2页
第2页 / 共21页
面向对象程序设计(C#)教学课件 李法平 第6章_第3页
第3页 / 共21页
面向对象程序设计(C#)教学课件 李法平 第6章_第4页
第4页 / 共21页
面向对象程序设计(C#)教学课件 李法平 第6章_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《面向对象程序设计(C#)教学课件 李法平 第6章》由会员分享,可在线阅读,更多相关《面向对象程序设计(C#)教学课件 李法平 第6章(21页珍藏版)》请在金锄头文库上搜索。

1、,面向对象程序设计(C#),第六章异常处理,212,目 录,任务6.1 处理系统异常,任务6.2 处理自定义异常,312,任务6.1 处理系统异常,2,1,知识目标,能力目标,异常机制 异常捕捉 异常处理,利用异常处理提高系统的容错能力,412,6.1.1情境描述,在收银过程中,输入的销售数量应该是数字,但当收银员输入过程中输入的数据不是正确的数字,例如输入字母或者其它非数字字符时,系统就会发生错误,为了解决这个问题,他需要完成以下任务: 1)异常捕获 2)异常处理,第1章目录,计算机在接受来自用户输入的数据时,难免发生错误,一旦存在输入的数据非法,计算机的软件系统应该具备容错能力,程序应该能

2、够处理非法输入。目前收银过程中的程序不能对非法错误进行容错,为了处理非法的输入,可以利用异常捕获和异常处理来实现。,第1章目录,6.1.2问题分析,1、利用Visual Studio 2010打开任务5.5项目 2、针对CashRegisterMenu.cs类进行修改,针对AddMenu()方法添加异常捕捉和处理机制。 3、修改EditMenu,添加异常捕获及处理功能。 4、运行输入非法数据进行验证结果,第1章目录,6.1.3解决方案,6.1.4知识总结,1、异常处理 异常是指应用程序运行时遇到的错误或程序意外的行为。如,在运算中被除数为0,数组的下标越界等等的系统定义的异常;也有用户自定义的

3、异常。 在程序运行时出现的错误有以下两种: (1)语法错误 程序的语法错误是由于不满足程序设计语言语法而产生的错误,例如关键字被写错,或者一个语句结束时忽略了分号,在写方法体的时候少了一个大括号等等,程序设计语言是一个逻辑的整体,中间任何一步的错误都将导致整个程序不能正常运行。语法错误大概有如下几种类型: 语句结束少了分号。一般而言,C#语言每一条完整的语句后面都是以分号作为结束的。但是大家注意在for,if,while 小括号后面的语句体只要不是空语句,是不应该加分号的,do-while语句后面例外,要加分号。,第1章目录,812,6.1.4知识总结,类型匹配错误。例如 int i ; i=

4、67.66; 定义的变量名在使用的时候由于笔误写错,例如 int count;在引用变量的时候不小心写成cont; 引用了空值,定义了一个对象,没有实例化就引用它,这样是不允许的,在定义对象的时候要先初始化。 If else嵌套的时候的匹配错误。 数组下标越界问题。例如定义了具有10个元素的数组arr,在使用的时候arr10,那么就超出了范围。 在条件判断的时候“= =”经常误写成“=”。例如判断整型变量a是否等于100,如果是则输出优秀,如果不是,则输出良好。,第1章目录,912,6.1.4知识总结,(2)逻辑错误 逻辑的错误指的是程序的处理逻辑出现错误,也就是程序编译和运行都正常,但运行结

5、果不是预期的,一般语法错误可以在编译的时候发现,但逻辑错误编译器无法识别。有些无法捕获的语法错误就会导致逻辑错误,比如刚才讲的语法错误的第七项,在编译的时候就不会发现,但是如果把if表达式里面的“= =”写成“=”,那么a的值不是100,也会输出优秀。 (3)运行时错误 程序在运行的时候试图去执行一个不被允许的操作,运行时错误一般被称为异常,需要加上异常处理。,第1章目录,1012,6.1.4知识总结,2、异常的种类 在C#中,所有异常的的基类都是System.Exception类,所有的异常都是从此类派生的。当错误发生时,当前运行的程序通过引发包含关于该错误的信息的异常来报告错误。异常发生后

6、,将由该应用程序或默认异常处理程序进行处理。 System.Exception异常类包含两种类型的异常,分别为System.SystemException和System.ApplicationException。 (1)System.SystemException是所有系统预定义的异常的基类。下表描述了派生自系统预定义的异常。 (2)System.ApplicationException类是由用户程序发送的,也就是由用户自定义的异常类。,第1章目录,1112,6.1.4知识总结,3、异常处理 C# 语言的异常处理功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、ca

7、tch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。 把会产生异常的代码用try模块括起来,产生或抛出异常时,在catch块中进行处理。如果try语句后面的代码发生了异常,系统将会捕获这个异常,并转到catch语句后面的的代码来处理此异常。 异常出现时可以使用throw语句抛出。Throw语句中包括throw关键字及其后面抛出异常的表达式。运算该表达式时抛出异常类的实例对象异常。 Finally块 Catch块包含的代码是异常发生的时候就会运行,而finally块包含的代码是不管异常是否发生或者是否找到与异常类型匹配的catch块,finally块始终会执行

8、。所以我们可以使用finally块释放资源,例如关闭文件、关闭与数据库的连接等。,第1章目录,1212,6.1.5应用实践,计算一个超市半年的销售总量是多少,用一个数组来存放每个月的销售总量,然后计算半年的销售总量。在计算过程中处理数组的异常。,第1章目录,1312,任务6.2 处理自定义异常,2,1,知识目标,能力目标,自定义异常类 抛出异常,自定义异常提高系统容错,1412,6.2.1情境描述,Jack利用系统异常成功的解决了输入过程中的非数字异常处理,但是对于销售过程中的数量问题,仅控制数字输入时不能完全解决问题,因为购买的数量还必须是大于0的数据才对。为了解决此类异常,他需要完成以下任

9、务: 1)创建自定义异常 2)自定义异常处理,第1章目录,1512,6.2.2问题分析,针对销售数量,仅进行数字有效性的处理是不够的,根据销售的业务逻辑,销售的数据还必须是大于0,系统异常不能处理此类业务逻辑问题,为了解决这类问题,可以利用自定义异常进行处理。先利用throws命令进行异常抛出,再通过try catch进行处理。,第1章目录,1612,6.2.3解决方案,1、利用Visual Studio2010打开任务6.1 2、新建自定义异常类CashQuantityException。 3、在CashRegisterGoods类接受数量是进行有效性判断,对于无效的数据,系统进行自定义异常

10、抛出。 4、在CashRegisterMenu.cs的AddMenu及EditMenu中处理CashQuantityException异常, 5、运行测试系统自定义异常。,第1章目录,1712,6.2.4知识总结,在C#中,系统定义的标准异常一般情况下可以满足我们的需要,但有的时候没有合适的异常供我们使用的时候,我们可以创建自定义的异常类,自定义的异常类一般继承System.ApplicationException,在命名自定义异常类的时候,命名约定写成和系统异常相似的名字,并以Exception结尾. (1)定义一个异常语法格式 public class 自定义异常名 :Applicatio

11、nException /继承基类 public 自定义异常名(string message):base(message) ,第1章目录,1812,6.2.4 知识总结,(2)抛出异常 定义一个类A发生自定义异常的时候,并不处理,使用throw抛出自定义异常类。 (3)捕获异常 在应用程序中,使用类A的时候,由于类A抛出了一个异常,所以要对此异常使用try catch语句进行捕获处理。,第1章目录,1912,6.2.5应用实践,超市中要求员工的年龄在18岁到60岁之间,如果员工的年龄超出了这个范围需要进行异常处理,需要经过以下三个步骤。 自定义一个异常类名为“CustomerAgeExcepti

12、on“继承基类ApplicationException 定义一个类CustAge,当员工年龄不符合要求的时候,使用throw语句抛出异常CustomerAgeException 捕获异常,在Main函数中使用抛出了异常的CustAge类的时候要捕获处理它抛出的异常类,第1章目录,2012,6.3 任务小结,异常的概念 程序中发生错误的常见类型 处理异常的语句的关键字Try、 catch、Finally 抛出异常的语句:Throw语句 自定义异常的方法,第1章目录,2150,6.4 练习作业,C#预定义的常用异常类都有哪些?它们各自的含义是什么? 简述异常处理过程。 简述自定义异常的过程。,第1章目录,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号