欢迎来到天天文库
浏览记录
ID:42945740
大小:1.85 MB
页数:32页
时间:2019-09-26
《调试、测试和异常处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章调试、测试和异常处理目标理解如何调试应用程序和排除错误掌握如何测试C#应用程序了解测试和调试的区别在程序中进行错误捕获和错误处理2简介应用程序开发可以安装在客户端机器上应用程序必须无错误无故障可靠稳健查找和排除错误或故障称为调试3调试的必要性计算机化的计费系统在事物处理过程中,系统显示错误消息系统发生故障必须重新输入全部信息在部署应用程序前必须先对其进行调试4错误类型错误类型语法错误逻辑错误运行时错误语法错误、缺少括号等在编译时确定易于确定错误的算法导致错误结果、公式错误等在执行过程中确定难以调试内存泄漏、以零作除数、异常在运行时确定
2、难以调试5调试过程5-1调试器观察程序的运行时行为跟踪变量的值确定语义错误的位置查看寄存器的内容查看内存空间6调试过程5-2暂停可在代码中插入“断点”,以便在特定行处暂停执行该代码7调试过程5-3右键单击所需代码行,以设置断点选择“插入断点”8调试过程5-4选择“调试”“继续”以便继续执行程序9调试过程5-5.NET集成开发环境Debug模式Release模式10VS.NET中的调试工具5-1“局部变量”窗口11VS.NET中的调试工具5-2“监视”窗口12VS.NET的调试工具5-3“快速监视”对话框13VS.NET中的调试工具5-4“
3、即时”窗口14VS.NET中的调试工具5-5跨语言调试调试使用.NET框架编写的应用程序以及Win32本机应用程序加入正在运行的程序调试多个程序VisualStudio.NET调试器的功能15异常帐户姓名余额300123小王300124小黄7000311320小李网上银行某学生小王转帐5000到其朋友小李的帐面上04500数据库系统将查询发送到数据库中tranfer_money(){sendquery();}…….…….余额=4500-5000程序崩溃拒绝交易错误系统出现故障“C#”中的异常16C#中的异常处理2-1...INPUTDivi
4、sorIFDivisor=0THENResult=Divident/Divisor....代码片段1输入除数结果=_024GOTOPREVIOUSLINE触发异常处理程序17C#中的异常处理2-2...INPUTDivisorResult=Divident/Divisor....代码片段1“用户自定义”错误检查机制难以检查输入的任何“特殊字符”IFDivisor=0THENGOTOPREVIOUSLINEIFDivisor<0THENPRINT“无效输入”运行库运行库应当提供“错误检查机制”18System.Exception3-119Sy
5、stem.Exception3-2属性MessageSourceStackTraceInnerException20System.Exception3-3在C#程序中,引发异常共有以下两种方式使用显式throw语句来引发异常。在此情况下,控制权将无条件转到处理异常的部分代码使用语句或表达式在执行过程中激发了某个异常的条件,使得操作无法正常结束,从而引发异常Try...Catch...Finally21try和catch块4-1滤水器filter_water(){try{water();}catch{impurities.Show();}}…
6、….…….过滤水杂质//程序代码//错误处理代码try{//程序代码}catch(IOExceptionE){//错误处理代码}22try和catch块4-2try{//程序代码}catch(IOExceptionE){//错误处理代码}引发I/O设备异常23try和catch块4-3try{//程序代码}catch(E){//错误处理代码}可处理系统中的任何一种异常System.Exception24try和catch块4-4if(grade<0&&grade>150){thrownewInvalidNumberInput(grade+“
7、不是合法的成绩”);}throw可用来引发自定义异常“InvalidNumberInput”25使用finallytry{//程序代码}catch{//错误处理代码}finally{//finally代码}无论有否异常该代码都会执行26多重catch块2-1try{//程序代码}catch(IOExceptionE){//错误处理代码}catch(OutOfMemoryExceptionE){//错误处理代码}用于捕捉两种异常的“catch”块27多重catch块2-2publicclassMyException:System.Applic
8、ationException{publicMyException(stringmessage):base(message){}}try{intc=a/b;}catch(MyExe
此文档下载收益归作者所有