程序设计 错误处理.ppt

上传人:牧羊曲112 文档编号:6482000 上传时间:2023-11-04 格式:PPT 页数:20 大小:292.82KB
返回 下载 相关 举报
程序设计 错误处理.ppt_第1页
第1页 / 共20页
程序设计 错误处理.ppt_第2页
第2页 / 共20页
程序设计 错误处理.ppt_第3页
第3页 / 共20页
程序设计 错误处理.ppt_第4页
第4页 / 共20页
程序设计 错误处理.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《程序设计 错误处理.ppt》由会员分享,可在线阅读,更多相关《程序设计 错误处理.ppt(20页珍藏版)》请在三一办公上搜索。

1、2023/11/4,1,Visual Basic.NET 程序设计,第9 章 错误处理,2023/11/4,2,学习和实践的目标,需求分析要求:发生任何错误时要有明确的提示,对数据没有影响,系统不会中止,不影响重新操作。可靠性是软件质量的重要指标。本章的目标是使系统具有较强的容错和防错能力。,2023/11/4,3,实现目标的知识点,程序中的错误类型VS.NET的调试工具 Try.End Try结构化错误处理程序防错编程,2023/11/4,4,9.1 错误处理的思路,通过编译发现语法错误然后纠正。通过测试发现运行或逻辑错误通过调试找到错误原因并定位对运行错误进行容错或防错,对逻辑错误要改变逻

2、辑,2023/11/4,5,9.2错误类型及其解决方法,9.2.1 三种错误类型在VB程序中可能会发生3种类型的错误:语法错误、运行错误和逻辑错误。语法错误(或编译错误)语法错误是一种编程错误(例如属性或关键字 拼写错误),这种错误违反了VB的语法规则。在开发人员输入程序语句时VB能指出语法错误,这时程序不能运行,直到所有的语法错误被更正为止。,2023/11/4,6,9.2错误类型及其解决方法,9.2.1 三种错误类型运行错误 运行错误是在程序运行期间会导致程序意外终止的错误。当外部事件或未被发现的语法错误强制程序运行中断时,就会发生运行错误,也称作为异常。例如:试图创建一个并不存在的数据库

3、文件的连接,程序就会产生运行错误。逻辑错误 逻辑错误是一种人为的编程错误,即不合理的思维。这种错误会导致程序产生不期望的结果。,2023/11/4,7,9.2错误类型及其解决方法,9.2.2 解决错误方法发生语法错误时,在代码编辑器中,VS.NET自动用蓝色锯齿状的下划线标出语法有错误的语句,将鼠标指针停留在该语句上面一段时间就能获得关于错误的更多信息。编译错误时会自动打开错误列表窗,只要在其中的某个错误上双击一下就可以定位至错误的位置,2023/11/4,8,9.2错误类型及其解决方法,9.2.2 解决错误方法运行错误需要有更完整的解决方案使用结构化错误处理程序容错或防错编程。逻辑错误的解决

4、比较困难,关键是对问题的理解和思维。无论是运行错误还是逻辑错误,找到错误的原因和定位是首要任务。VS.NET的调试器是一个有效的工具。可以在中断模式下跟踪语句的执行过程,通过查看相关变量或属性值的变化来进行调试,从而找到问题所在。,2023/11/4,9,9.3 使用中断模式调试程序,可以在状态下(Debug)使用调试菜单和调试工具栏的命令进行调试。使用中断模式调试程序,不仅可以找错、纠错,而且通过逐步执行方式阅读代码,理解程序的执行流程。下面以学生成绩管理系统为例介绍中断模式调试VB.NET程序的方法。,2023/11/4,10,9.3 使用中断模式调试程序,9.3.1 设置断点并逐条执行调

5、试程序若要对学生成绩管理系统中学生基本信息进行“添加”或“修改”操作,必然会调用“frm增改”类中的ShowDialog()方法,现在来调试该方法代码,具体步骤如下:1启动学生成绩管理系统项目。2把“frm增改.vb”文件代码显示在代码编辑窗口中。3将鼠标指针移到页边距指示栏(紧靠代码编辑器窗口左边缘之外的灰色条)上,在与ShowDialog()方法中的“Me.dgv区域=dgv区域”语句平行处,单击该指示栏设置一个断点。,2023/11/4,11,9.3 使用中断模式调试程序,9.3.1 设置断点并逐条执行调试程序4单击调试工具上的【启动】按钮再次运行程序。此时生成的学生成绩管理系统主窗口与

6、正常启动一样,继续进行调试。5进入系统主控界面后,选择菜单【基本数据】中的【学生】,并在工具栏中单击【添加】按钮,即将添加学生基本信息。6在代码编辑器中,将鼠标指针停留在“Me.dgv区域”类变量处。7单击调试工具栏上的【逐过程】按钮执行下一条程序语句。8继续单击【逐过程】按钮,查看If语句中条件的值和执行条件分支过程。9单击调试工具栏上的【停止调试】按钮终止调试。,2023/11/4,12,9.3 使用中断模式调试程序,9.3.2 使用监视窗查看变量【监视】窗口是一个特殊的VS.NET工具,只要程序处于中断模式,就可以利用它来跟踪重要的变量和属性。在VS.NET中,可以打开多个监视窗口。这些

7、窗口在【调试】|【窗口】|【监视】子菜单上分别编号为【监视1】和【监视n】。还可以向【监视】窗中添加表达式。,2023/11/4,13,9.3 使用中断模式调试程序,9.3.3 使用命令窗口假设在学生成绩管理系统的学生基本信息数据的“添加”代码调试过程中,同时想调试“修改”操作代码,只需在【命令窗口】的立即模式下输入“bAdd=False”即可。,2023/11/4,14,9.4 运行错误处理,在学生成绩管理系统中的“frm主控”类中的frm主控_Load()方法,现把其中的数据库文件名“scores.mdb”改成“score.mdb”,然后运行程序。由于当前运行目录下找不到“score.md

8、b”文件,于是VB.NET产生一个显示运行错误信息的消息框,并且中断程序执行 错误的原因和位置非常明确。这类错误称为运行错误,也叫异常。一般有两种机制来处理这种运行错误:1.用TryCatchEnd Try结构化错误处理程序进行处理,并能使程序恢复正常,这种处理称为容错处理。2.使用验证技术,在某段程序代码执行前先进行确认,避免错误发生,这种处理称为防错编程。,2023/11/4,15,9.4 运行错误处理,9.4.1 容错处理 容错处理就是“允许发生错误,事后处理”。统一采用结构化错误处理的语法结构:Try 可能产生运行错误的代码Catch 当运行错误发生时就会被执行的代码Finally 不

9、论错误是否会发生都会被执行的代码(可选)End Try其中,Try、Catch和End Try是必不可少的关键字,而Finally关键字和它后面的代码是可选的,在需要释放资源时特别有用。当Try快中的代码发生运行错误就会抛出异常,Catch块中的代码处理异常。,2023/11/4,16,9.4 运行错误处理,9.4.2 防错处理防错处理就是“事前处理,防止发生错误”。对节中的代码修改如下:Dim oledb连接 AsIf IO.File.Exists(scores.mdb)Then 打开数据库连接,数据库在运行目录下 oledb连接=New Data.OleDb.OleDbConnection

10、(Data Source=scores.mdb;Provider=Microsoft.Jet.OLEDB.4.0;)oledb连接.Open()Else MessageBox.Show(数据库文件不存在!)EndEnd If上述代码使用了.NET框架类库中的System.IO命名空间中的File.Exists方法,以检测数据库文件打开之前是否存于当前目录下。,2023/11/4,17,9.5 控制用户输入 是有效的防错手段,常言道“病从口入”、“以预防为主”。任何应用系统都是先接受数据输入,然后进行处理,最后得到希望的输出。若能保证输入的合理性,则必将大大地减少错误出现的概率。1.学号输入 根

11、据实际需求,学生的学号由7位数字组成,所以应该通过frm学生 对象中的学号输入控件进行控制。制作一个继承自TextBox控件的IntBox整型控件完成这项任务。代码参见:第七步(2):错误处理。2.数值输入 将字符串存入数据库的数值字段时会出错。使用IntBox整型控件进行控制,只接受正整数。制作一个继承自IntBox控件的DecimalBox整型控件,只能接受正的浮点数。,2023/11/4,18,9.5 控制用户输入 是有效的防错手段,3.字符串输入更新字符串类型的数据库字段时要控制输入的字符串长度不要超过相应数据表字段的长度,这已经在frm增改 的ShowDialog方法中对有关控件的M

12、axlength的设置进行了控制。4.日期输入保证只接受合理日期,通过.NET的DateTimePicker控件进行控制。5.布尔值输入保证只接受合理布尔值,通过.NET的CheckBox控件进行控制。,2023/11/4,19,9.7 容错和防错的选择,一般而言,每一类数据都有必须唯一的关键字段。比如:学生数据中学号 要唯一,操作员数据中工号 要唯一,学年数据中学年 要唯一,课程数据中课程 要唯一,成绩数据中学年 和课程 的组合要唯一,成绩比例数据中学年 和课程 的组合要唯一,教师数据中工号 要唯一。若这些关键数据不唯一,会给系统造成很多后患。此类错误是逻辑错误。可以在数据输入时予以控制,只要在数据存储前判断一下该数据是否已存在即可。一个解决方案是在frm增改 的Modify方法中进行控制,另一个解决方案是由输入控件(比如:改造TextBox后的控件)本身进行控制。显然,后者更符合面向对象程序设计的思想。,2023/11/4,20,9.7 容错和防错的选择,在程序中应该采用结构化错误处理程序进行容错还是防错,取决于下列因素:1.性能容错的运行效率较低,防错的运行效率较高。2.错误的把握程度若错误原因和出现时机比较明确应该尽量进行防错处理,否则进行容错。在代码中结合使用防错编程技术和结构化错误处理程序通常是最佳选择。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号