文档详情

面向对象程序设计(C#)电子教案李法平 第6章.ppt

发布:2017-08-17约3.68千字共21页下载文档
文本预览下载声明
第六章异常处理 */12 目 录 任务6.1 处理系统异常 任务6.2 处理自定义异常 */12 任务6.1 处理系统异常 2 1 知识目标 能力目标 异常机制 异常捕捉 异常处理 利用异常处理提高系统的容错能力 */12 6.1.1情境描述 在收银过程中,输入的销售数量应该是数字,但当收银员输入过程中输入的数据不是正确的数字,例如输入字母或者其它非数字字符时,系统就会发生错误,为了解决这个问题,他需要完成以下任务: 1)异常捕获 2)异常处理 第1章目录 计算机在接受来自用户输入的数据时,难免发生错误,一旦存在输入的数据非法,计算机的软件系统应该具备容错能力,程序应该能够处理非法输入。目前收银过程中的程序不能对非法错误进行容错,为了处理非法的输入,可以利用异常捕获和异常处理来实现。 第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,数组的下标越界等等的系统定义的异常;也有用户自定义的异常。 在程序运行时出现的错误有以下两种: (1)语法错误 程序的语法错误是由于不满足程序设计语言语法而产生的错误,例如关键字被写错,或者一个语句结束时忽略了分号,在写方法体的时候少了一个大括号等等,程序设计语言是一个逻辑的整体,中间任何一步的错误都将导致整个程序不能正常运行。语法错误大概有如下几种类型: 语句结束少了分号。一般而言,C#语言每一条完整的语句后面都是以分号作为结束的。但是大家注意在for,if,while 小括号后面的语句体只要不是空语句,是不应该加分号的,do---while语句后面例外,要加分号。 第1章目录 */12 6.1.4知识总结 类型匹配错误。例如 int i ; i=67.66; 定义的变量名在使用的时候由于笔误写错,例如 int count;在引用变量的时候不小心写成cont; 引用了空值,定义了一个对象,没有实例化就引用它,这样是不允许的,在定义对象的时候要先初始化。 If else嵌套的时候的匹配错误。 数组下标越界问题。例如定义了具有10个元素的数组arr,在使用的时候arr[10],那么就超出了范围。 在条件判断的时候“= =”经常误写成“=”。例如判断整型变量a是否等于100,如果是则输出优秀,如果不是,则输出良好。 第1章目录 */12 6.1.4知识总结 (2)逻辑错误 逻辑的错误指的是程序的处理逻辑出现错误,也就是程序编译和运行都正常,但运行结果不是预期的,一般语法错误可以在编译的时候发现,但逻辑错误编译器无法识别。有些无法捕获的语法错误就会导致逻辑错误,比如刚才讲的语法错误的第七项,在编译的时候就不会发现,但是如果把if表达式里面的“= =”写成“=”,那么a的值不是100,也会输出优秀。 (3)运行时错误 程序在运行的时候试图去执行一个不被允许的操作,运行时错误一般被称为异常,需要加上异常处理。 第1章目录 */12 6.1.4知识总结 2、异常的种类 在C#中,所有异常的的基类都是System.Exception类,所有的异常都是从此类派生的。当错误发生时,当前运行的程序通过引发包含关于该错误的信息的异常来报告错误。异常发生后,将由该应用程序或默认异常处理程序进行处理。 System.Exception异常类包含两种类型的异常,分别为System.SystemException和System.ApplicationException。 (1)System.SystemException是所有系统预定义的异常的基类。下表描述了派生自系统预定义的异常。 (2)System.ApplicationException类是由用户程序发送的,也就是由用户自定义的异常类。 第1章目录 */12 6.1.4知识总结 3、异常处理 C# 语言的异常处理功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。 把会产生异常的代码用try模块括起来,产生或抛出异常时,在catch块中进行处理。如果try语句后面的代码发生了异常,系统将会捕获这个异常,并转到catch语句后面的的代码来处理此异常。 异常出现时可以使用throw语句抛出。Throw语句中包括throw关键字及其后面抛出异常的表达式。运算该
显示全部
相似文档