第7章异常、结构与枚举.ppt

上传人:sccc 文档编号:5653451 上传时间:2023-08-06 格式:PPT 页数:24 大小:953.51KB
返回 下载 相关 举报
第7章异常、结构与枚举.ppt_第1页
第1页 / 共24页
第7章异常、结构与枚举.ppt_第2页
第2页 / 共24页
第7章异常、结构与枚举.ppt_第3页
第3页 / 共24页
第7章异常、结构与枚举.ppt_第4页
第4页 / 共24页
第7章异常、结构与枚举.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《第7章异常、结构与枚举.ppt》由会员分享,可在线阅读,更多相关《第7章异常、结构与枚举.ppt(24页珍藏版)》请在三一办公上搜索。

1、第七章,异常、结构与枚举,目标,理解如何调试应用程序和排除错误掌握如何测试 C#应用程序了解测试和调试的区别在程序中进行错误捕获和错误处理,简介,应用程序开发,可以安装在客户端机器上,应用程序必须,无错误无故障 可靠稳健,查找和排除错误或故障称为调试,异常,网上银行,张三转帐25000到李四的帐面上,0,20,000,数据库,系统将查询发送到数据库中,tranfer_money()sendquery();.,余额 20000-25000,程序崩溃,拒绝交易,“C#”中的异常,C#中的异常处理,.INPUT DivisorIF Divisor=0 THENResult=Divident/Divi

2、sor.,代码片段 1,输入除数,结果=,_,0,2,4,GOTO PREVIOUS LINE,触发异常处理程序,C#中的异常处理,.INPUT DivisorResult=Divident/Divisor.,代码片段 1,“用户自定义”错误检查机制,难以检查输入的任何“特殊字符”,IF Divisor=0 THEN GOTO PREVIOUS LINEIF Divisor 0 THEN PRINT“无效输入”,运行库,运行库应当提供“错误检查机制”,System.Exception 3-1,System.Exception,System.Exception,在 C#程序中,引发异常共有以下两

3、种方式,使用显式 throw 语句来引发异常。在此情况下,控制权将无条件转到处理异常的部分代码使用语句或表达式在执行过程中激发了某个异常的条件,使得操作无法正常结束,从而引发异常,Try.Catch.Finally,try 和 catch 块,滤水器,filter_water()try water();catch impurities.Show();.,过滤水,杂质,/程序代码,/错误处理代码,try/程序代码catch(IOException E)/错误处理代码,try 和 catch 块,try/程序代码catch(IOException E)/错误处理代码,I/O 设备可以生成错误,tr

4、y 和 catch 块,try/程序代码catch(E)/错误处理代码,可处理系统中的任何一种异常,System.Exception,try 和 catch 块,if(UserInput 100)throw new InvalidNumberInput(UserInput+“不是有效输入(请输入 1 和 100 之间的数字)”);,throw 可用来引发自定义异常“InvalidNumberInput”,使用 finally,try/程序代码catch/错误处理代码finally/finally 代码,无论控制流如何都会执行,多重 catch 块,try/程序代码catch(IOExcepti

5、on E)/错误处理代码catch(OutOfMemoryException E)/错误处理代码,用于捕捉两种异常的“catch”块,多重 catch 块,public class MyCustomException:System.ApplicationExceptionpublic MyCustomException(string message):base(message)try quotient=dividend/divisor;catch(MyCustomExeption ex)Console.WriteLine(ex.Message);,.if(divisor=0)throw new

6、 MyCustomException(“除数不能为零);,示例-建立自定义异常,using System;public class EmailErrorException:ApplicationExceptionpublic string _message;/重写构造函数public EmailErrorException():base()_message=null;public EmailErrorException(string message):base()_message=message.ToString();public EmailErrorException(string mess

7、age,Exception myNew):base(message,myNew)_message=message.ToString();/Message属性的重载public override string Messagegetreturn Email格式错误。;,示例-throw自定义异常,private bool SaveInfo(string name,string email)string subStrings=email.Split();/如果输入的Email不是被“”字符分割成两段,则抛出Email错误异常if(subStrings.Length!=2)throw new Emai

8、lErrorException();elseint index=subStrings1.IndexOf(.);/查找被“”字符分成的两段的后一段中“.”字符的位置,没有“.”/或者“.”字符是第一个字符,则抛出EmailErrorException异常if(index=0)throw new EmailErrorException();/如果“.”字符是最后一个字符,抛出EmailErrorException异常if(subStrings1subStrings1.Length-1=.)throw new EmailErrorException();return true;,示例-Catch自定

9、义异常,private void btnSubmit_Click(object sender,System.EventArgs e)if(txtName.Text.Length=0,struct structEx public int structDataMember;public void structMethod1()/structMethod1 实现,自定义数据类型可以在其内部定义方法 无法实现继承属于值类型主要结构:,struct studentpublic int stud_id;public string stud_name;public float stud_marks;publ

10、ic void show_details()/显示学生详细信息,结构,数据成员,方法,所有与 Student 关联的详细信息都可以作为一个整体进行存储和访问,枚举,public class Holiday public enum WeekDays Monday,Tuesday,Wednesday,Thursday,Friday public void GetWeekDays(String EmpName,WeekDays DayOff)/处理工作日 static void Main()Holiday myHoliday=new Holiday();myHoliday.GetWeekDays(R

11、ichie,Holiday.WeekDays.Wednesday);,枚举(Enum,Enumerator 的缩写)是一组已命名的数值常量 用于定义具有一组特定值的数据类型 枚举以 enum 关键字声明,Wednesday=2,枚举(续),C#中的枚举包含与值关联的数字 默认情况下,将 0 值赋给枚举的第一个元素,然后对每个后续的枚举元素按 1 递增在初始化过程中可重写默认值,public enum WeekDaysMonday=1,Tuesday=2,Wednesday=3,Thursday=4,Friday=5,总结,调试是搜寻和消除应用程序中的错误的过程语法错误表示编译器无法理解代码调试模式可用来重复编译和排除应用程序中的错误,直至能够成功运行“局部变量”窗口允许用户监控当前程序中所有变量的值单元测试和集成测试是测试大型应用程序的常用技术当应用程序遇到运行时错误时,就会引发异常C#中的所有异常都派生自 Exception 类,总结,C#提供了以下类型的循环结构:while 循环do 循环for 循环foreach 循环C#中的结构可以在其内部定义方法并可包括一个构造函数枚举是一组已命名的数值常量,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号