欢迎来到天天文库
浏览记录
ID:44439834
大小:484.00 KB
页数:25页
时间:2019-10-22
《11+程序出错了怎么办?—调试、错误处理与异常》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第11章程序出错了怎么办?——调试、错误处理与异常程序设计不可能是一帆风顺的,其间总会发生各种各样的问题。例如,可能有键盘输入错误,也可能有程序的语法错误或者编写的程序有逻辑错误等。此时就需要对程序进行调试,以期找出问题并改正。VB.NET2008的调试器是构建在开发环境中的,提供简单、灵活的调试功能。除此之外,在程序运行期间也可能发生这样或者那样的错误,这称为运行时错误。出现运行时错误时,程序会发出异常,以便通过在程序内查找用于处理错误的代码来处理错误。如果未找到这样的代码,程序将停止并需要重新启动。由于上述情况可能导致数据丢失,最好在可能预见错误发生的任何地方均创建错误
2、处理代码,这称为异常处理。章节内容11.1编程中的错误11.2调试11.3异常处理11.1编程中的错误编译错误编译错误也称为编译器错误或者语法错误,是指妨碍程序运行的错误。运行时错误运行时错误是指在程序运行时发生的错误。这些错误通常是在程序试图执行不可能执行的操作时发生。逻辑错误逻辑错误是指妨碍程序执行您希望它执行的操作的错误。代码在编译和运行时可能都没有错误,但某个操作的结果却可能不是您期望的结果。11.2调试查找并修复错误的过程称为调试。调试是我们在编程时查找错误并修正错误的最好方式。VB.NET2008提供很多调试程序的方法,包括控制程序的执行流程、设置断点、查看运行
3、时变量值等。11.2.1控制执行调试程序时常需要控制程序的执行流程,包括开始执行、中断执行、结束执行、单步执行、执行到指定位置等。除此之外,还可以让代码执行到指定光标处,方法是在希望执行到的代码处右击,在打开的右键菜单中单击【运行到光标处】。11.2.2断点在调试一大段程序时,可能会想让代码运行到某一处,然后停下来检查是否是你所预期的结果,这时就要使用断点了。发生中断时,则称程序和调试器处于中断模式。可以让代码在任何定义断点的地方停止,并且可以在任何地方设置断点。注意,在设置断点的那行之前就会停止代码的执行。断点设置设置断点很容易,通过单击代码行旁边的灰边上的想要设置断点的
4、位置,就可以在设计时或运行时的代码中进行设置了。断点是一个红色的圆点。此时,可以逐步向下执行代码或者运行到指定的光标位置,同时在执行的过程中查看某些关键变量的值来查找代码的逻辑问题。查看变量的值最简单的方法就是将鼠标放在这个变量上,就会在打开的DataTips窗口中查看当前变量的值。11.2.3即时窗口当我们通过断点和单步执行,发现某些代码可能存在问题,而要试图修改时,可能并没有很明确的方法来修复错误,而是需要多次尝试。这时我们希望可以在不改变实际代码的情况下测试可能的修复以及代码修改后带来的结果,即时窗口可以帮助我们完成这样的功能。在中断模式下,即时窗口可以用于查看变量或
5、者表达式的值或者运行代码段。例如,在中断模式下查看变量k的值,可以在即时窗口输入以下代码。Debug.Print(k)或者?k二者均返回变量k当前的值。并且,即时窗口也支持智能感知。即时窗口最有用的地方在于,它可以在设计阶段执行代码,并得到代码的执行结果。特别在试图修改代码时,可以直接在即时窗口运行修改后的代码,以查看结果是否正确。11.2.4可视化工具可视化工具用于创建窗口或其他界面,以一种适合于变量或对象的数据类型的有意义的方式来显示变量或对象。文本可视化工具HTML可视化工具XML可视化工具数据集可视化工具均用于字符串对象用于DataSet、DataView和Data
6、Table对象11.3异常处理11.3.1异常的概念在VisualBasic.NET中,错误机制是基于异常这个概念的。异常可被抛出以引发错误,并且在处理错误时可捕捉异常。如果没有提供任何类型的错误处理,当错误发生时,用户会接受到关于这个未处理的异常的消息,这个消息是由CLR提供的,并不是用户友好的,用户很难理解。11.3.2结构化异常处理结构化异常处理是用Try...Catch...Finally...EndTry语句实现的。Try'能够引发一个异常的代码Catch'处理异常的代码Finally'实现清理工作的代码(如关闭数据库连接等)EndTryTry和EndTry语句都
7、是必需的。Catch和Finally语句可以共同使用于一个Try块中,但是必需至少使用其中之一。通常将可能导致异常的代码放在Try块中。如果这段代码在执行过程中产生异常,则转到Catch块中对该异常进行相应处理。最后,无论是否引发异常,Finally块中的代码最后一定会被执行。也可以这样理解:Try块中放置正常的程序代码,Catch块中放置异常处理代码,而Finally块中放置一些无论是否发生异常都必须执行的代码,如释放资源、设置相关属性等善后工作。例子:除法计算器考虑到用户的输入,有可能存在以下两种情况。一是用户
此文档下载收益归作者所有