版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ACCP V4.0第九章第九章调试、测试和异常处理ACCP V4.02回顾 q WinForms单选按钮控件允许用户进行设置q WinForms的图片框控件允许用户在窗体上添加和显示位图、元文件、JPEG、GIF 或 PNG 等格式的图形q WinForms的选项卡控件将类似的功能集中在一起,放在一个对话框或窗口中q WinForms的 HScrollBar 和 VScrollBar 用作水平和垂直滚动条,分别以水平和垂直方式浏览(或滚动)整个文档q 进度条控件用于指示操作的进度,并显示排列在水平条中一定数目的矩形,通常通过在程序中设置其Value值来显示任务完成的百分比ACCP V4.03目
2、标q理解如何调试应用程序和排除错误q掌握如何测试 C# 应用程序q了解测试和调试的区别q在程序中进行错误捕获和错误处理ACCP V4.04简介应用程序开发可以安装在客户端机器上应用程序必须无错误无故障 可靠稳健查找和排除查找和排除错误或故障称为错误或故障称为调试调试ACCP V4.05调试的必要性 在事物处理过程中,系统显示错误消息系统发生故障系统发生故障必须重新输入全部信息在部署应用程序前必须先对其进行调试ACCP V4.06错误类型错误类型语法错误逻辑错误运行时错误l语法错误、缺少括号等l在编译时确定l易于确定l错误的算法导致错误结果、公式错误等 l在执行过程中确定l难以调试l内存泄漏、以
3、零作除数、异常l在运行时确定l难以调试ACCP V4.07调试过程 5-1调试器观察程序的运行时行为 跟踪变量的值确定语义错误的位置查看寄存器的内容查看内存空间 ACCP V4.08调试过程 5-2暂停暂停可在代码中插入“断点”,以便在特定行处暂停执行该代码ACCP V4.09调试过程 5-3右键单击所需代码行,以设置断点选择“插入断点”ACCP V4.010调试过程 5-4选择“调试” “继续”以便继续执行程序ACCP V4.011调试过程 5-5.NET 集成开发环境Debug模式Release模式ACCP V4.012 VS.NET 中的调试工具 5-1“局部变量”窗口ACCP V4.0
4、13 VS.NET 中的调试工具 5-2“监视”窗口ACCP V4.014 VS.NET 的调试工具 5-3“快速监视”对话框ACCP V4.015 VS.NET 中的调试工具 5-4“即时”窗口ACCP V4.016 VS.NET 中的调试工具 5-5l跨语言调试 l调试使用 .NET 框架编写的应用程序以及 Win32 本l 机应用程序l加入正在运行的程序l调试多个程序Visual Studio .NET 调试器的功能ACCP V4.017异常帐户帐户姓名姓名 余额余额300123张三300124王五47,000311320李四网上银行网上银行张三转帐25000到李四的帐面上020,000
5、数据库系统将查询发送到数据库中系统将查询发送到数据库中tranfer_money() sendquery(); . . 余额 20000-25000 程序崩溃程序崩溃拒绝交易拒绝交易错误错误 系统出现故障系统出现故障 “C#”中的异常 ACCP V4.018C# 中的异常处理2-1 .INPUT DivisorIF Divisor = 0 THENResult = Divident/Divisor.代码片段 1输入除数结果 =_0 24GOTO PREVIOUS LINE触发异常处理程序ACCP V4.019 C# 中的异常处理2-2 .INPUT DivisorResult = Divide
6、nt/Divisor.代码片段 1“用户自定义”错误检查机制难以检查输入的任何难以检查输入的任何“特殊字符特殊字符”IF Divisor = 0 THEN GOTO PREVIOUS LINEIF Divisor 0 THEN PRINT “无效输入”运行库运行库运行库应当提供“错误检查机制” ACCP V4.020System.Exception 3-1ACCP V4.021System.Exception 3-2属性属性MessageSourceStackTraceInnerExceptionACCP V4.022System.Exception 3-3在 C# 程序中,引发异常共有以下两
7、种方式l使用显式 throw 语句来引发异常。在此情况下,控制权将无条件转到处理异常的部分代码l使用语句或表达式在执行过程中激发了某个异常的条件,使得操作无法正常结束,从而引发异常Try.Catch.FinallyACCP V4.023try 和 catch 块 4-1滤水器滤水器filter_water() try water(); catch impurities.Show(); . .过滤水杂质/程序代码 /错误处理代码 try/程序代码catch (IOException E)/错误处理代码ACCP V4.024try 和 catch 块 4-2try/程序代码catch (IOExc
8、eption E)/错误处理代码I/O 设备可以生成错误ACCP V4.025try 和 catch 块 4-3try/程序代码catch( E)/错误处理代码可处理系统中的任何一种异常System.ExceptionACCP V4.026try 和 catch 块 4-4 if (UserInput 100)throw new InvalidNumberInput(UserInput + “不是有效输入(请输入 1 和 100 之间的数字)”);throw 可用来引发自定义异常“InvalidNumberInput” ACCP V4.027使用 finallytry/程序代码catch/错误
9、处理代码finally/finally 代码无论控制流如何都会执行ACCP V4.028多重 catch 块 2-1try/程序代码catch (IOException E)/错误处理代码catch (OutOfMemoryException E)/错误处理代码用于捕捉两种异常的“catch”块ACCP V4.029多重 catch 块 2-2public class MyCustomException : System.ApplicationExceptionpublic MyCustomException(string message):base(message)try quotient
10、= dividend /divisor;catch(MyCustomExeption ex)Console.WriteLine(ex.Message);.if(divisor = 0) throw new MyCustomException(“除数不能为零);ACCP V4.030示例-建立自定义异常using System;public class EmailErrorException:ApplicationExceptionpublic string _message;/重写构造函数public EmailErrorException():base()_message = null;pu
11、blic EmailErrorException(string message):base()_message = message.ToString();public EmailErrorException(string message, Exception myNew):base(message,myNew)_message = message.ToString();/Message属性的重载public override string Messagegetreturn Email格式错误。;ACCP V4.031示例-throw自定义异常private bool SaveInfo(stri
12、ng name, string email)string subStrings = email.Split();/如果输入的Email不是被“”字符分割成两段,则抛出Email错误异常if(subStrings.Length != 2) throw new EmailErrorException();elseint index = subStrings1.IndexOf(.);/查找被“”字符分成的两段的后一段中“.”字符的位置,没有“.” /或者“.”字符是第一个字符,则抛出EmailErrorException异常if(index = 0)throw new EmailErrorExcep
13、tion();/如果“.”字符是最后一个字符,抛出EmailErrorException异常if(subStrings1subStrings1.Length -1 = .)throw new EmailErrorException();return true;ACCP V4.032示例-Catch自定义异常private void btnSubmit_Click(object sender, System.EventArgs e)if(txtName.Text.Length = 0 & txtEmail.Text.Length = 0)MessageBox.Show(请填写姓名和Email。, 填写不完整, MessageBoxButtons.OK, MessageBoxIcon.Information);return;trySaveInfo(txtName.Text, txtEmail.Text);catch(EmailErrorException ex)MessageBox.Show(ex.Message, Email 格式错误, System.Windows.Forms.MessageBoxButtons.OK, MessageBoxIcon.Information);return;MessageBox.Show(保存成功。, 成功, MessageB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐理记谱法相关试题及详细答案
- 2026年河北省苏教版初中物理九年级上册第5章电学课件
- 桂科版四年级下册主题三图像处理新天地任务二加工图像教案设计
- 小班期末科学测验题目与答案
- 课堂管理行为相关试题及答案
- 人教部编版五年级下册红楼春趣教学设计
- 高中生物 第4章 人与环境 第2节 生物多样性及其保护教学设计 新人教版选择性必修第二册
- 约束疗法适应症相关试题及答案
- 2026年消防设施操作员面试技巧课件
- 2026年湘教版高中地理必修一第十二章地理信息系统课堂导学课件
- 2025年陕西国防工业职业技术学院高职单招职业技能考试题库【历年真题】附答案详解
- 2026中国建筑用辐射制冷材料市场化应用障碍及对策
- 公路超限检测设施建设施工方案
- T-CRES 0037-2025 平板式固体氧化物燃料电池 电池堆运行性能评价规范
- 2026年内蒙古高考地理真题试卷(含答案)
- 杭州市文澜中学八年级数学月考试卷含答案及解析
- 无菌物品储存管理规范与实践指南
- 2024人教版八年级英语下册期末测试卷(含答案)
- 工程造价工程量清单编制方案
- 贫血饮食调理主题班会
- 食品安全主题班会课件
评论
0/150
提交评论