欢迎来到天天文库
浏览记录
ID:48796015
大小:1.86 MB
页数:34页
时间:2020-01-25
《第8章 调试、测试和异常处理.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第7章调试、测试和异常处理目标理解如何调试应用程序和排除错误在程序中进行错误捕获和错误处理2简介应用程序开发可以安装在客户端机器上应用程序必须无错误无故障可靠稳健查找和排除错误或故障称为调试38.1调试计算机化的计费系统在事物处理过程中,系统显示错误消息系统发生故障必须重新输入全部信息在部署应用程序前必须先对其进行调试48.1.1错误类型错误类型语法错误逻辑错误运行时错误语法错误、缺少括号等在编译时确定易于确定错误的算法导致错误结果、公式错误等在执行过程中确定难以调试内存泄漏、以零作除数、异常在运行时确定难以调试58.1.2调试过程调试器观察程序的运
2、行时行为跟踪变量的值确定语义错误的位置查看寄存器的内容查看内存空间6调试过程5-2暂停可在代码中插入“断点”,以便在特定行处暂停执行该代码7调试过程5-3右键单击所需代码行,以设置断点选择“插入断点”8调试过程5-4选择“调试”“继续”以便继续执行程序9调试模式.NET集成开发环境Debug模式(调试):可用来重复编译应用程序和排除错误,直至能够成功运行。Release模式(发布):当应用程序无需重复编译即可发布时,再改成发布模式编译,然后发布108.1.2VS.NET中的调试工具“局部变量”窗口:显示当前作用域下的变量并跟踪他们的值,控制权一旦转
3、移到其他方法,则系统会自动清除列出的变量,显示当前方法的变量。11“监视”窗口:“监视”窗口:用计算变量和表达式的值,并跟踪他们的变化。12“快速监视”对话框:“快速监视”对话框:快速计算变量和表达式的值。13“即时”窗口:“即时”窗口:用于检查变量的值,给变量赋值以及运行一行代码。要查找变量的值,必须在变量名前加“?”。14VisualStudio.NET调试器的功能跨语言调试调试使用.NET框架编写的应用程序以及Win32本机应用程序加入正在运行的程序调试多个程序158.2异常帐户姓名余额300123小王300124小黄7000311320小李网
4、上银行某学生小王转帐5000到其朋友小李的帐面上04500数据库系统将查询发送到数据库中tranfer_money(){sendquery();}…….…….余额=4500-5000程序崩溃拒绝交易错误系统出现故障“C#”中的异常161.异常(Exception)异常(Exception):异常是当程序发生错误时产生的一种信号。在.Net广泛使用的原因:除数为0;数组下标出界,或没用引用,文件找不到举例:strings;inti;s=textBox1.Text;i=int.Parse(s);172.异常类型每种异常类型都是一个类。所有异常派生于基类基
5、类Exception下存在两大类异常:System.SystemException:预定义公共语言运行库异常类。System.ApplicationException:用户定义的应用程序异常类。可以通过异常类名判断是哪类异常:ArithmeticException:数学计算错误DivideByZeroException:被零除FormatException:参数的格式不正确18异常类19异常类的常用属性属性Message:描述错误信息Source:显示异常发生时的应用程序或对象名StackTrace:显示异常发生时的堆栈信息InnerExceptio
6、n:对内部异常的引用203.异常处理异常处理:异常处理是指处理程序运行时出现异常的方法。以前用代码号(如C)来描述异常,C#则用异常类(Exception)对象来处理异常.异常处理方式异常的产生:通过抛出(throwing)一个该异常类的对象实现异常的捕获:通过catch该异常类的对象实现异常处理有try-catch方法21异常处理举例inti=0;try{i=Convert.ToInt32(textBox1.Text);}//若textBox1.Text值为非int则捕获异常,执行catch的代码进行异常处理catch(Exceptionex){M
7、essageBox.Show(ex.Message);}224.异常处理语句在C#程序中,引发异常共有以下两种方式使用语句或表达式在执行过程中激发了某个异常的条件,使得操作无法正常结束,从而引发异常使用显式throw语句来引发异常。在此情况下,控制权将无条件转到处理异常的部分代码Try...Catch...Finally231)try语句C#使用try语句来捕捉和处理程序执行过程中产生的异常。try语句提供一种在执行一个语句块时能够抓住异常的机制.格式:try{程序代码块;//我们应该把有可能发生异常的该代码放置在try中.}catch(Except
8、ionex){异常处理代码块;//捕捉到异常后的处理方法放置到catch中。}finally{无论是否发生异
此文档下载收益归作者所有