基于VB的桌面系统开发方案_T4

上传人:豆浆 文档编号:4086520 上传时间:2017-08-06 格式:PPT 页数:65 大小:334.50KB
返回 下载 相关 举报
基于VB的桌面系统开发方案_T4_第1页
第1页 / 共65页
基于VB的桌面系统开发方案_T4_第2页
第2页 / 共65页
基于VB的桌面系统开发方案_T4_第3页
第3页 / 共65页
基于VB的桌面系统开发方案_T4_第4页
第4页 / 共65页
基于VB的桌面系统开发方案_T4_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《基于VB的桌面系统开发方案_T4》由会员分享,可在线阅读,更多相关《基于VB的桌面系统开发方案_T4(65页珍藏版)》请在金锄头文库上搜索。

1、1,基于VB的桌面系统开发方案,错误处理和类的概念,4,2,课题目标,了解错误出现的原因并学会避免它了解Err 对象的使用及其属性和方法学习如何跟踪错误了解对错误的延迟处理和即时处理学习创建一个公共错误处理过程了解Visual Basic 中的类学习什么是类模块学习通过设置类的属性、方法和事件来创建一个类,3,简要回顾,上一章主要介绍了:在代码中使用ActiveX数据对象的优点:在把数据保存到数据库之前就检验其有效性在多用户环境中减少由于锁住记录而带来的冲突可以通过SQL语句同时对多个记录进行更新可以使用带参数的存储过程三种ADO组件:连接(Connection)记录集(Recordset)命

2、令(Command)游标类型,4,理解“错误”的概念,缺省的错误处理可以提供给用户出现错误的编号和对错误的一段简短描述并自动终止应用程序在自己编写的代码中对错误进行处理处理运行错误的代码称为“错误处理程序”,5,错误类型,6,运行错,下面是一些可能产生运行错的情况:向一个不存在文件写入企图向一个已经被关闭的表进行查询把一个数字类型的变量赋给一个字符串类型的变量。两个用户保存同一个记录除数为零,7,运行错(续),通过激活错误处理程序可以对运行错进行处理,在没有错误处理程序时,Visual Basic提供一个带有错误编号和出错原因的消息框并终止应用程序,直到错误得到处理,8,运行错(续),举例来说

3、,如果把一个很大的计算结果保存到一个整型变量中,会导致溢出的运行错Visual Basic会给出下图所示的出错编号为6,原因为“溢出”的对话框,9,运行错(续),10,运行错(续),Visual Basic不支持集中错误处理技术每一个过程或事件都要求有一个错误处理程序来解决一个它自己的错误创建一个错误处理程序的三个基本步骤:激活一个错误处理程序编写对可能发生的错误进行处理的代码。继续程序的运行,11,错误处理程序,通过激活错误处理程序来对运行错进行处理在过程中使用On Error GoTo语句加一个命名的标号来激活错误处理程序标号用来指出错误发生时程序转向错误处理程序的入口这部分代码称为“错误

4、处理程序”命名和变量的命名一样可以以冒号结尾放在过程的Exit Sub语句之后,12,错误处理程序(续),下面的DataErr错误处理程序实现对数据溢出错误的处理:Private Sub Command1_Click() On Error GoTo DataErr Dim num As Integer, var As Integer num = 10 var = num * 10000 Print var Exit SubDataErr: MsgBox 请尝试乘以一个小一些的整数End Sub,13,使用Err对象,报告错误,包含和运行错相关的信息可以帮助确定发生的错误类型、原因和错误发生的地

5、方属性是由错误发生者设置的错误可能是由Visual Basic或是编程者产生的在运行错发生时,运行错的属性就被设置为能唯一标志这个错误的信息以及要求的处理,14,Err对象的属性,15,Err对象的属性(续),16,继续执行应用程序,用Resume语句来实现继续运行程序三种Resume语句:,17,继续执行应用程序(续),在下面的例子中,使用到了上面提到的三种属性来处理一个除数为零的错误Private Sub Result_Click() On Error GoTo err1 Text3.Text = Text1.Text / Text2.Text Msgbox “Error resolved

6、” Exit Sub err1: MsgBox Err.Number MsgBox Err.Description MsgBox Err.Source If Err.Number = 11 ThenText2.Text = Text2.Text + 1 End If ResumeEnd Sub,18,Err对象的方法,19,Err对象的方法(续),Private Sub cmdError_Click Dim num As Integer num=Val(Text1.Text) On Error GoTo NoErr Err.Raise numExit Sub,20,Err对象的方法(续),No

7、Err: Select case Err.NumberCase 6MsgBox ”Data Overflow”Text1.SetFocusCase 11MsgBox “Division by zero”Text1.SetFocusCase elseMsgBox “Error not known”Exit SubEnd selectText1.Text=” ”End Sub,21,捕获错误,对程序中发生的错误进行捕获当执行一个标志着错误处理程序开始的On Error语句时就引发了对错误的捕获当执行到Exit Sub、Exit Function、Exit Property、End Sub、End

8、Function 或End Property语句时就意味着捕获的结束可以使用On Error GoTo 0来结束对错误的捕获考虑用下面两种捕获和处理错误的方法:即时处理延时处理,22,错误的即时处理,在程序错误一发生时就转向错误处理程序并马上进行处理“On Error GoTo line”语句给出了错误处理程序的入口位置错误处理程序一般以一个标号开始,这个标号也就是在On Error GoTo语句中使用到的标号,23,错误的即时处理(续),错误处理程序采取相应的动作来解决出现的错误并从出错的语句或者出错语句的下一条语句接着运行程序需要一条语句在错误处理程序完成后结束这个过程Exit Sub,2

9、4,错误的延时处理,这种方法中VB忽略发生的错误,但是代码最后检测到这个错误用于象除数为零等这种错误错误处理代码用来重新设置变量的值,使得程序可以继续执行下去,25,错误的延时处理(续),缺点:在可能出错的地方,都需要编写错误处理代码Err对象在一个新的错误产生时不保存先前的错误信息可以使用“On Error Resume Next”语句来激发这种错误处理方法会让Visual Basic在错误已经发生后继续执行程序,26,错误的延时处理(续),下面的例子就是先查看Err对象的Number属性,如果该属性的值大于0,则表明有一个错误发生了Private Sub Command1_Click()

10、On Error Resume Next Text3.Text= Text1.Text / Text2.Text If Err.Number 0 ThenIf Err.Number = 11 ThenText3.Text = 0ElseMsgBox Input not validExit SubEnd If End IfEnd Sub,27,错误的延时处理(续),“On Error Resume Next”语句标志在此使用的是延迟处理的方法同时也调用了Clear方法来清除并设置Err对象的属性,为下一个出现的错误做准备,28,创建一个公共错误处理过程,减少代码的数量下面的代码就创建了一个函数C

11、heck,它在用户没有输入顾客的名称时产生一个错误:Function check() If Text1.Text = ThenErr.Raise 900, ,No blanks allowed ElseMsgBox Record saved End IfEnd FunctionPrivate Sub Save_Click() Call checkEnd Sub,29,调试程序,Bugs应用程序中的错误调试确定应用程序中错误的位置和更正错误的过程。Visual Basic提供了好几个工具在确定错误的位置时很有用,30,类,所有对象的基础代码的集合形成一个用来创建其它对象的模板。在类模块中的代码描

12、述了从类中创建的对象的属性和行为,31,类(续),以下是创建对象时必须遵守的三个规则:封装内部数据和代码都是被隐藏起来的多态不同的对象拥有相同名称的方法,但是方法的实现却是不一样的继承子类继承了它的父类的特征,32,创建一个类,在Visual Basic中创建一个类需要下面四个基本步骤:添加一个类模块并设置它的属性创建类的属性创建类的方法创建类的事件,33,类模块,Visual Basic中的面向对象编程最基本的构成是类模块类模块包含一个类的定义,以及这个类的属性和方法的定义每个类都保存在一个扩展名为.CLS的文件里与标准代码模块很相似,包括一些可以在应用程序中被其它模块调用的函数,34,类模

13、块和标准模块的区别,两者数据存储不同,标准模块的数据不能有多个拷贝从类模块创建的每个对象都可以拥有一份独立的自己的数据标准模块中的数据的生存时间和应用程序是一样的对象中的数据则随着对象的存在而存在,随着对象的消亡而消亡标准模块中的全局变量在应用程序的任何部分都可见,然而类模块的全局变量只可以通过引用这个对象来访问,35,添加类模块,选择“工程(Projects)”菜单中的“添加类模块(Add Class Module)”子菜单,36,创建类的属性,属性可以有两种创建方式:创建一个公有变量 创建一个属性过程公有变量通过在类模块的声明部分使用关键字Public来创建公有变量Public Ac_nu

14、m As IntegerPublic Balance As Integer,37,创建类的属性(续),为访问类的信息提供完全开放的接口。不能创建在类中经常要用到的只读属性。私有变量只能被类模块内部的代码访问。Private Ac_num As IntegerPrivate Balance As Integer,38,创建类的属性(续),属性过程增强了数据的隐藏性可以隐藏对象的部分数据,同时也向外界显示部分数据三种类型的属性过程:Property SetProperty LetProperty Get,39,创建属性过程,属性过程的创建:在类模块的代码窗口中键入代码 或者使用“添加过程(Add

15、Procedure)”对话框来创建,在“工具(Tools)”菜单中选择“添加过程(Add Procedure)”选项就可以显示“添加过程”对话框,40,属性过程对话框,41,属性过程,键入过程的名称在“类型”(type)选项中选中“属性”(property)在“范围”(scope)选项中选中“公有”(public)单击“确定”按钮如下图为属性过程窗口,42,属性过程(续),43,属性过程(续),44,属性过程(续),下面的例子生成以大写方式显示的属性:Dim getcap As StringPublic Property Get CapText() As String CapText = ge

16、tcapEnd PropertyPublic Property Let CapText (ByVal vNewValue As String) getcap = Ucase(vNewValue)End Property,45,属性过程(续),Private Sub Command1_Click() Dim cs As Class1 Set cs = New Class1 cs.CapText = Text1.Text Text1.Text = cs.CapText End SubPublic Property Set(newob As Object) Set curr = newobEnd Property,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号