第6章 程序调试和异常处理_第1页
第6章 程序调试和异常处理_第2页
第6章 程序调试和异常处理_第3页
第6章 程序调试和异常处理_第4页
第6章 程序调试和异常处理_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 程序调试和异常处理 本章要点: VB .NET程序中的错误种类 VB .NET的工作模式 在VB .NET中使用调试工具调试程序的方法 VB .NET中的常用调试窗口 非结构化异常处理语句(On Error和Resume)的功能与使用 结构化异常处理语句(TryCatchFinally)的功能与使用6.1 循序渐进学理论 6.1.1 程序中的错误类型程序中的错误类型 1语法错误 语法错误是指在程序代码中,存在不符合VB .NET语法规则的语句而产生的错误。 2运行错误 运行错误是指程序中的语句本身是正确的,但是这些语句在运行时无法正确执行,从而导致程序发生错误。 3逻辑错误 逻辑错误是

2、指程序运行过程中没有得到要求的结果。常见的逻辑错误有:运算符使用不正确、语句的次序不对、循环语句的起始值或终值不正确、误输入等。 6.1.2 程序的调试程序的调试1VB .NET的3种工作模式 (1)设计模式:程序处于设计状态 (2)运行模式:程序处于运行状态 (3)中断模式:暂停程序的执行 三种状态可通过调试菜单或调试工具栏相互切换图6-4 【调试】菜单 图6-5 【调试】工具栏 6.1.2 程序的调试程序的调试2使用调试工具调试程序 (1)设置和删除断点:有三种方法,可在任何工作模式下完成。 (2)跟踪程序的执行:一般在中断模式下进行。逐语句执行:可深入到被调用过程内部,逐语句执行逐过程执

3、行:将被调用过程当成一条语句来执行跳出:连续执行完当前过程的剩余语句后,在调用该过程的下一条语句处中断执行 3常用的调试窗口(1)任务列表窗口:显示语法错误(2)输出窗口:显示程序运行时产生的信息(3)命令窗口(立即):输入并执行VB.NET的各种命令。打开方法:“调试|窗口|即时”菜单(4)监视窗口:显示当前被监视的表达式的值。监视的表达式可在监视窗口直接添加(5)局部变量窗口:显示当前过程所有局部变量的值(6)自动窗口:显示当前语句以及上一条语句所有变量的值(7)Me窗口:显示当前窗体类中定义的变量和对象的当前值6.1.3 异常处理的概念异常处理的概念 【例6-1】 编写一个除法计算器,计

4、算器的设计界面如图6-12所示。程序运行时,输入被除数和除数后按【计算】按钮将会把运算结果显示在【结果】后面的文本框中,如图6-13所示。要求程序能够识别出除数为零的错误并给出提示信息,如图6-14所示。 图6-12 程序设计界面 图6-13 程序正常运行界面 图6-14 除数为零的情况 6.1.4 非结构化异常处理非结构化异常处理1Err对象 Err对象的主要属性和方法有: Number属性:错误号 Description属性:发生错误的描述信息 Raise方法:产生一个错误报警信息 格式:Public Sub Raise( ByVal Number As Integer, Optional

5、 ByVal Source As Object = Nothing, Optional ByVal Description As Object = Nothing, Optional ByVal HelpFile As Object = Nothing, Optional ByVal HelpContext As Object = Nothing ) 如:Err.Raise(vbObjectError+513, “MyFun”,”输入无效文本”) Clear方法:清除Err对象的所有属性值 2On Error语句 用于处理其后代码块中的异常错误On Error语句有以下四种形式: On Err

6、or GoTo Line On Error Resume Next On Error GoTo 0 On Erro GoTo -13Resume语句 在错误处理代码执行完后继续程序执行(1)Resume 0 (2)Resume Next(3)Resume line 注意:在错误处理程序以外的任何位置使用Resume语句,将引发错误 【例6-2】 用非结构化异常处理方法处理例6-1中的除数为0的异常和所有其它异常。当除数为零时,自动把除数设置为1,再重新执行除法运算,并给出结果不可靠的信息,如图6-15所示和图6-16所示。如果发生了其它异常则给出异常的提示信息,并退出过程,如图6-17所示。

7、图6-15 提示信息 图6-16 不可靠的结果 图6-17 其它异常的提示信息 6.1.5 结构化异常处理结构化异常处理1TryCatchFinallyEnd Try语句语句格式:Try Try语句块 该语句块可能会引发异常 Catch exception As type When expression Catch语句块用来对捕获的错误进行处理 Finally语句块 存放异常处理后执行的代码End Try 【例6-3】 对除法计算器进行改造使之能够捕获到除数为零的异常(只对整数和Decimal数产生,对于实数结果为无穷大)、输入数据格式不正确的异常以及其它所有异常。图6-18图6-20是发生了

8、几种异常情况时的程序运行界面。 图6-18 除数为0时的异常 图6-19 参数格式不正确时的异常 图6-20 其它异常 2常用的异常类所有异常类派生于System.Exception类(1)Message属性 :包含对异常原因的描述信息(2)InnerException属性:包含这个异常的“内部异常” 3用户自行触发异常:Throw语句格式:Throw 异常对象功能:用来抛出一个可用结构化异常处理代码(Try.Catch Finally.End Try)或非结构化异常处理代码(On Error GoTo)处理的异常 【例6-4】 编写一个通用过程用来校验用户输入的密码长度是否等于8位,如果密码

9、长度不等于8位将自行触发一个异常。然后编写一个密码输入界面,调用该通用过程进行验证,并能捕获密码长度不正确的异常。程序的设计界面如图6-22所示。程序运行时可在文本框中输入密码,如图6-23所示。若输入的密码不是8位,将出现如图6-24的消息框。图6-22 程序设计界面 图6-23 程序运行界面 图6-24 关于异常的提示信息 6.1.6 生成可执行文件生成可执行文件图6-25 【配置管理器】对话框 6.2 典型实例练能力 6.2.1 典型实例一:过程参数不正确的异常处理典型实例一:过程参数不正确的异常处理(非结构化异常处理)(非结构化异常处理) 【6-5】 编写一个通用过程,用来求两个整数之

10、间所有数的平方和,平方和要求通过参数带回。然后编写程序调用该通用过程对它进行验证,要求在主调过程中能够捕获过程参数不正确的异常。程序的设计界面如图6-26所示。调用过程时若发生参数不正确异常,将会出现如图6-27所示的提示对话框,提示对话框退出后将会出现如图6-28所示。图6-26 程序设计界面 图6-27 错误提示对话框 图6-28 显示错误号 6.3 上机练习重应用 6.3.2 上机练习一:算术运算溢出异常的处理(结上机练习一:算术运算溢出异常的处理(结构化异常处理)构化异常处理) 【练习题目】 编写一个整数加法计算器,用来求输入的任意两个整数的和,要求能够捕获溢出异常和其它异常。程序的设计界面如图6-

温馨提示

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

最新文档

评论

0/150

提交评论