欢迎来到天天文库
浏览记录
ID:17414921
大小:804.00 KB
页数:31页
时间:2018-08-31
《c 2008程序设计基础案例教程 教学课件 ppt 作者 江南 第五章 调试与异常处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#2008程序设计基础案例教程第五章调试与异常处理5.1程序调试程序员在编码过程中经常犯一些错误,例如算术运算时不小心使计算结果超出结果变量数据类型的有效范围(这种情况称为溢出)。当程序运行时出现了溢出情况,而恰好又位做处理,那么程序将因出现错误而被关闭。但是程序中处理了那么多数据,程序员如何知道错误出现在哪里呢?这就需要使用VisualStudio2008的调试功能。5.1.1案例功能在使用图书借阅管理系统的备忘录功能时,假设用户不小心修改了Log.txt文件,在文件头增加了一个空行,则运行时出现如图所示的效果:能否在执行temp=sr.ReadLine();语句时程序暂停来
2、检测变量的值以确定问题所在?5.1.2案例步骤设置断点为了能让程序在执行temp=sr.ReadLine();语句时程序能暂停,我们可以在这条语句上设置断点,设置中断有以下两种方法:使光标停在语句所在行,然后按快捷键F9或者选择调试菜单的“切换断点”命令。用鼠标单击该行的前边界,如图所示。单击这里5.1.2案例步骤启动调试单击工具栏上的“启动调试”按钮或按下F5启动调试,选择备忘录功能,程序运行到第一个断点处暂停,注意断点语句此时还未执行。“调试”菜单提供了3个继续执行代码的命令:逐语句逐过程跳出“逐语句”和“逐过程”的差异仅在于它们处理函数调用的方式不同。这两个命令都指示调试器
3、执行下一行的代码。如果某一行包含函数调用,“逐语句”仅执行调用本身,然后在函数内的第一个代码行处停止。而“逐过程”执行整个函数,然后在函数外的第一行处停止。位于函数调用的内部并想返回到调用函数时,请使用“跳出”。“跳出”将一直执行代码,直到函数返回,然后在调用函数中的返回点处中断。5.1.2案例步骤查看变量的值当程序中断时,将鼠标停在变量上1-2秒,将悬浮显示出变量的当前值,如下图所示:5.1.3案例拓展若断点在循环内部,则每循环一次都要中断一次,若循环次数庞大,将给调试带来不便。可以考虑为断点设置条件,在断点上单击鼠标右键,弹出如图所示菜单:断点设置命中次数在菜单中选择“命中次
4、数”命令,弹出“断点命中次数”窗口(见下图),在下拉框中选择“中断,条件是命中次数等于”,文本框中输入50,点击确定后,重新启动调试,发现循环内断点在循环到第50次时才中断,而不是每次都中断。断点设置断点其他设置位置:可以设置断点在文件的具体位置。条件:条件是一个表达式,它确定断点是命中还是跳过。当调试器到达该断点时,它会计算条件的值。只有当条件满足时,断点才会命中。可以在某个位置断点处设置条件,只有当条件为真时,才会中断执行。命中次数:它跟踪断点的命中次数。默认情况下,每次命中断点时断点都中断代码的执行。您可以更改此行为,以便仅当命中次数等于或超过指定值或者仅当命中次数为给定值
5、的倍数时,断点才中断代码。通过筛选器,可以将断点设置在指定的计算机、进程和线程上。在调试运行于多个处理器上的应用程序时,筛选器非常有用。调试窗口监视窗口只有在中断状态下可以使用该窗口,利用调试工具栏可以打开该窗口。可以在窗口中监视变量或表达式,如图所示。在代码中选中变量或表达式并拖动到监视窗口(或右键选择“添加监视”命令)即可进行监视,也可以在监视窗口的空行中直接输入要监视的变量或表达式。当代码单步执行时,监视变量或表达式的值若发生变化将以红色字体显示。调试窗口快速监视窗口中断时可以选中变量或表达式后右键选择“快速监视”来使用快速监视对话框进行监视,如下图所示:调试窗口即时窗口即
6、时窗口用于调试和计算表达式、执行语句、输出变量值等。它使您得以在调试期间输入表达式,由开发语言对其进行计算或执行。若要显示“即时”窗口,请打开要编辑的项目,然后从“调试”菜单中选择“窗口”,再选择“即时”。调试窗口命令窗口“命令”窗口用于直接在VisualStudio集成开发环境(IDE)中执行命令或别名。可以执行菜单命令和不在任何菜单上显示的命令。若要显示“命令”窗口,请从“视图”菜单中选择“其他窗口”,再选择“命令窗口”。调试窗口自动窗口“自动”窗口用于监视程序运行时最后访问的变量。调试窗口局部变量窗口“局部变量”窗口监视当前执行方法中的变量。与“自动”窗口相比,“局部变量”
7、窗口列出了更多的变量。5.1.4案例思考假设在文本Log.txt中的空行是在偶数行(例如第2行是空行),则按前面介绍的语句位置设置断点进行调试是否能检测出问题所在?有无更好的断点位置?如果有,考虑应如何设置断点属性尽快找出问题原因(假设第100行是空行)。5.2错误与异常处理错误的出现并不总是编写应用程序的人的原因,有时应用程序会因为终端用户的操作而发生错误,例如删除只读文件,数据库不存在等。无论如何,我们都应预测应用程序和代码中出现的错误。C#处理错误的机智为每种错误提供定制的
此文档下载收益归作者所有