您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 第11讲 程序调试和异常处理
武汉科技大学城市学院SqlServer2005C#程序设计第09讲接口余正红wtuyzh@126.com目标理解如何调试应用程序和排除错误掌握如何测试C#应用程序了解测试和调试的区别在程序中进行错误捕获和错误处理调试的必要性在事物处理过程中,系统显示错误消息系统发生故障必须重新输入全部信息在部署应用程序前必须先对其进行调试错误类型错误类型语法错误逻辑错误运行时错误语法错误、缺少括号等在编译时确定易于确定错误的算法导致错误结果、公式错误等在执行过程中确定难以调试内存泄漏、以零作除数、异常在运行时确定难以调试调试过程5-1调试器观察程序的运行时行为跟踪变量的值确定语义错误的位置查看寄存器的内容查看内存空间调试过程5-2暂停可在代码中插入“断点”,以便在特定行处暂停执行该代码调试过程5-3右键单击所需代码行,以设置断点选择“插入断点”调试过程5-4选择“调试”“继续”以便继续执行程序调试过程5-5.NET集成开发环境Debug模式Release模式VS.NET中的调试工具5-1“局部变量”窗口VS.NET中的调试工具5-2“监视”窗口VS.NET的调试工具5-3“快速监视”对话框VS.NET中的调试工具5-4“即时”窗口VS.NET中的调试工具5-5跨语言调试调试使用.NET框架编写的应用程序以及Win32本机应用程序加入正在运行的程序调试多个程序VisualStudio.NET调试器的功能异常帐户姓名余额300123张三300124王五47,000311320李四网上银行张三转帐25000到李四的帐面上020,000数据库系统将查询发送到数据库中tranfer_money(){sendquery();}…….…….余额=20000-25000程序崩溃拒绝交易错误系统出现故障“C#”中的异常C#中的异常处理2-1...INPUTDivisorIFDivisor=0THENResult=Divident/Divisor....代码片段1输入除数结果=_024GOTOPREVIOUSLINE触发异常处理程序C#中的异常处理2-2...INPUTDivisorResult=Divident/Divisor....代码片段1“用户自定义”错误检查机制难以检查输入的任何“特殊字符”IFDivisor=0THENGOTOPREVIOUSLINEIFDivisor0THENPRINT“无效输入”运行库运行库应当提供“错误检查机制”System.Exception3-1System.ExceptionSystem.SystemExceptionSystem.ApplicationExceptionSystem.ArithmeticExceptionSystem.Data.DataExceptionSystem.ArgumentExceptionSystem.FormatExceptionSystem.IO.IOExceptionSystem.DivideByZeroExceptionSystem.OverflowExceptionSystem.Reflection.TargetExceptionSystem.IndexOutOfRangeExceptionSystem.ArgumentNullExceptionSystem.Exception3-2属性MessageSourceStackTraceInnerExceptionSystem.Exception3-3在C#程序中,引发异常共有以下两种方式使用显式throw语句来引发异常。在此情况下,控制权将无条件转到处理异常的部分代码使用语句或表达式在执行过程中激发了某个异常的条件,使得操作无法正常结束,从而引发异常Try...Catch...Finallytry和catch块4-1滤水器filter_water(){try{water();}catch{impurities.Show();}}…….…….过滤水杂质//程序代码//错误处理代码try{//程序代码}catch(IOExceptionE){//错误处理代码}try和catch块4-2try{//程序代码}catch(IOExceptionE){//错误处理代码}I/O设备可以生成错误try和catch块4-3try{//程序代码}catch(E){//错误处理代码}可处理系统中的任何一种异常System.Exceptiontry和catch块4-4if(UserInput1&&UserInput100){thrownewInvalidNumberInput(UserInput+“不是有效输入(请输入1和100之间的数字)”);}throw可用来引发自定义异常“InvalidNumberInput”使用finallytry{//程序代码}catch{//错误处理代码}finally{//finally代码}无论控制流如何都会执行多重catch块2-1try{//程序代码}catch(IOExceptionE){//错误处理代码}catch(OutOfMemoryExceptionE){//错误处理代码}用于捕捉两种异常的“catch”块总结调试是搜寻和消除应用程序中的错误的过程语法错误表示编译器无法理解代码调试模式可用来重复编译和排除应用程序中的错误,直至能够成功运行“局部变量”窗口允许用户监控当前程序中所有变量的值单元测试和集成测试是测试大型应用程序的常用技术当应用程序遇到运行时错误时,就会引发异常C#中的所有异常都派生自Exception类
本文标题:第11讲 程序调试和异常处理
链接地址:https://www.777doc.com/doc-3402255 .html