第七章异常处理.ppt_第1页
第七章异常处理.ppt_第2页
第七章异常处理.ppt_第3页
第七章异常处理.ppt_第4页
第七章异常处理.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章,调试、测试和异常处理,2,目标,理解如何调试应用程序和排除错误 掌握如何测试 C# 应用程序 了解测试和调试的区别 在程序中进行错误捕获和错误处理,3,简介,应用程序开发,可以安装在客户端机器上,应用程序必须,无错误 无故障 可靠 稳健,查找和排除错误或故障称为调试,4,调试的必要性,计算机化的计费系统,在事物处理过程中,系统显示错误消息,必须重新输入全部信息,在部署应用程序前必须先对其进行调试,5,错误类型,错误类型,语法错误,逻辑错误,运行时错误,语法错误、缺少括号等 在编译时确定 易于确定,错误的算法导致错误结果、公式错误等 在执行过程中确定 难以调试,内存泄漏、以零作除数、异常

2、 在运行时确定 难以调试,6,调试过程 5-1,调试器,观察程序的运行时行为,跟踪变量的值,确定语义错误的位置,查看寄存器的内容,查看内存空间,7,调试过程 5-2,暂停,可在代码中插入“断点”,以便在特 定行处暂停执行该代码,8,调试过程 5-3,右键单击所需代码行,以设置断点,选择“插入断点”,9,调试过程 5-4,选择“调试” “继续”以便继续执行程序,10,VS.NET 中的调试工具 5-1,“局部变量”窗口,11,VS.NET 中的调试工具 5-2,“监视”窗口,12,VS.NET 的调试工具 5-3,“快速监视”对话框,13,VS.NET 中的调试工具 5-4,“即时”窗口,14,

3、VS.NET 中的调试工具 5-5,跨语言调试 调试使用 .NET 框架编写的应用程序以及 Win32 本 机应用程序 加入正在运行的程序 调试多个程序,Visual Studio .NET 调试器的功能,15,调试过程,.NET 集成开发环境,Debug模式,Release模式,16,异常,网上银行,张三转帐25000到李四的帐面上,0,20,000,数据库,系统将查询发送到数据库中,tranfer_money() sendquery(); . .,余额 20000-25000,程序崩溃,拒绝交易,“C#”中的异常,17,C# 中的异常处理2-1,. INPUT Divisor IF Div

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

5、n 3-1,20,System.Exception 3-2,21,System.Exception 3-3,在 C# 程序中,引发异常共有以下两种方式,使用显式 throw 语句来引发异常。在此情况下,控制权将无条件转到处理异常的部分代码 使用语句或表达式在执行过程中激发了某个异常的条件,使得操作无法正常结束,从而引发异常,Try.Catch.Finally,22,try 和 catch 块 4-1,滤水器,filter_water() try water(); catch impurities.Show(); . .,过滤水,杂质,/程序代码,/错误处理代码,try /程序代码 catch

6、(IOException E) /错误处理代码 ,23,try 和 catch 块 4-2,try /程序代码 catch (IOException E) /错误处理代码 ,I/O 设备可以生成错误,24,try 和 catch 块 4-3,try /程序代码 catch( E) /错误处理代码 ,可处理系统中的任何一种异常,System.Exception,25,try 和 catch 块 4-4,if (UserInput 100) throw new InvalidNumberInput (UserInput + “不是有效输入 (请输入 1 和 100 之间的数字)”); ,throw

7、 可用来引发自定义异常“InvalidNumberInput”,26,使用 finally,try /程序代码 catch /错误处理代码 finally /finally 代码 ,无论控制流如何都会执行,27,多重 catch 块 2-1,try /程序代码 catch (IOException E) /错误处理代码 catch (OutOfMemoryException E) /错误处理代码 ,用于捕捉两种异常的“catch”块,28,多重 catch 块 2-2,public class MyCustomException : System.ApplicationException pu

8、blic MyCustomException(string message):base(message) try quotient = dividend /divisor; catch(MyCustomExeption ex) Console.WriteLine(ex.Message); ,. . if(divisor = 0) throw new MyCustomException(“除数不能为零); ,29,示例-建立自定义异常,using System; public class EmailErrorException:ApplicationException public string

9、 _message; /重写构造函数 public EmailErrorException():base() _message = null; public EmailErrorException(string message):base() _message = message.ToString(); public EmailErrorException(string message, Exception myNew):base(message,myNew) _message = message.ToString(); /Message属性的重载 public override string

10、 Message get return Email格式错误。; ,30,示例-throw自定义异常,private bool SaveInfo(string name, string email) string subStrings = email.Split(); /如果输入的Email不是被“”字符分割成两段,则抛出Email错误异常 if(subStrings.Length != 2) throw new EmailErrorException(); else int index = subStrings1.IndexOf(.); /查找被“”字符分成的两段的后一段中“.”字符的位置,没

11、有“.” /或者“.”字符是第一个字符,则抛出EmailErrorException异常 if(index = 0) throw new EmailErrorException(); /如果“.”字符是最后一个字符,抛出EmailErrorException异常 if(subStrings1subStrings1.Length -1 = .) throw new EmailErrorException(); return true; ,31,示例-Catch自定义异常,private void btnSubmit_Click(object sender, System.EventArgs e) if(txtName.Text.Length =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论