第12章 错误调试和异常处理.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第12章 错误调试和异常处理.ppt》由会员分享,可在线阅读,更多相关《第12章 错误调试和异常处理.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中原工学院软件学院韩玉民C#程 序 设 计C#Programming LanguageSoftware College,Software College,ZhongyuanZhongyuan University of Technology University of Technology2010-82010-8 第第第第1 1章章章章 C#C#概述概述概述概述 第第第第2 2章章章章 简单的简单的简单的简单的C#C#程序设计程序设计程序设计程序设计 第第第第3 3章章章章 C#C#程序设计基础程序设计基础程序设计基础程序设计基础 第第第第4 4章章章章 控制语句控制语句控制语句控制语句 第第
2、第第5 5章章章章 数组和集合数组和集合数组和集合数组和集合 第第第第6 6章章章章 面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第第第第7 7章章章章 继承和接口设计继承和接口设计继承和接口设计继承和接口设计 第第第第8 8章章章章 WindowsWindows窗体应用程序设计窗体应用程序设计窗体应用程序设计窗体应用程序设计 第第第第9 9章章章章 用户界面设计用户界面设计用户界面设计用户界面设计 第第第第1010章章章章 图形设计图形设计图形设计图形设计 第第第第1111章章章章 文件操作文件操作文件操作文件操作 第第第第1212章章章章 错误调试和异常处理错误调试和
3、异常处理错误调试和异常处理错误调试和异常处理 第第第第1313章章章章 ADOADOContents错误调试和异常处理错误调试和异常处理 第第 12 章章 12.1 错误分类错误分类 12.2 程序调试程序调试 12.3 异常处理异常处理12.1 错误分类错误分类 12.1 错误分类错误分类 1.1.语法错误语法错误语法错误语法错误语法错误也称为编译错误,是由于编写代码错误而产生的。语法错误也称为编译错误,是由于编写代码错误而产生的。如:如:Int a;if a=3 console.Writeline(b);如果错误地输入了关键字(例如,将如果错误地输入了关键字(例如,将int简写为简写为In
4、t)、遗)、遗漏了某些必须的语句成分等,那么漏了某些必须的语句成分等,那么C#在编译应用程序时就会在编译应用程序时就会检测到这些错误,并提示相应的错误信息。检测到这些错误,并提示相应的错误信息。语法错误、运行错误、语法错误、运行错误、逻辑错误逻辑错误12.1 错误分类错误分类 1.1.语法错误语法错误语法错误语法错误在在C#项目运行期间,当一个语句试图执行一个不能执行项目运行期间,当一个语句试图执行一个不能执行的操作时,就会发生运行错误。例如的操作时,就会发生运行错误。例如:l数据溢出数据溢出l数组下标越界等。数组下标越界等。例如,有一个窗体例如,有一个窗体myForm1上包含以下事件过程:上
5、包含以下事件过程:private void button1_Click(object sender,EventArgs e)int a=new int10;int i;for(i=0;i=20;i+)ai=2*i;12.1 错误分类错误分类 2.2.运行错误运行错误运行错误运行错误12.1 错误分类错误分类 2.2.运行错误运行错误运行错误运行错误逻辑错误是当程序未按照预定方式执行而产生的错误逻辑错误是当程序未按照预定方式执行而产生的错误。逻辑错误在编译时、运行时都检查不出来,但是达不到逻辑错误在编译时、运行时都检查不出来,但是达不到预期的执行结果。预期的执行结果。这种错误最难排查,需要仔细分
6、析并借助调试工具才能这种错误最难排查,需要仔细分析并借助调试工具才能查出并改正。查出并改正。例如:例如:int i;for(i=0;i=20;i+)ai=2*i;/实际应为实际应为ai=3*i 12.1 错误分类错误分类 3.3.逻辑逻辑逻辑逻辑错误错误错误错误程序调试程序调试:是将编制的程序投入实际运行前,用手工或编译是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的程序等方法进行测试,修正语法错误和逻辑错误的过程。过程。这是保证程序正确性必不可少的步骤。这是保证程序正确性必不可少的步骤。12.2 程序调试程序调试设置代码加行号:设置代码加行号:选择选择“
7、工具工具”|“选项选项”|“选项选项”|“文本编辑器文本编辑器”|“C#”|“常规常规”选项,出现如图选项,出现如图12.2所示的对话框。所示的对话框。12.2 程序调试程序调试 C#提供了强大的程序调试功能,使用其调试环境可以有提供了强大的程序调试功能,使用其调试环境可以有效地完成程序的调试工作,有助于发现运行错误。效地完成程序的调试工作,有助于发现运行错误。12.2 程序调试程序调试12.2.112.2.1调试工具调试工具调试工具调试工具(1 1)“调试调试调试调试”工具栏工具栏工具栏工具栏12.2.112.2.1调试工具调试工具调试工具调试工具(2 2)“调试调试调试调试”菜单菜单菜单菜
8、单p“调试调试”菜单菜单“启动调试启动调试”、“逐语句逐语句”或或“逐过程逐过程”命令命令p或在代码编辑窗口中右键快捷菜单中或在代码编辑窗口中右键快捷菜单中“运行到光标处运行到光标处”即开始调试过程。即开始调试过程。12.2.2 12.2.2 如何开始调试如何开始调试如何开始调试如何开始调试n“启动调试启动调试”:则应用程序启动并一直运行到断点。可以在任何时刻中断则应用程序启动并一直运行到断点。可以在任何时刻中断执行以检查值或检查程序状态。执行以检查值或检查程序状态。n“逐语句逐语句”或或“逐过程逐过程”:应用程序启动并执行,然后在第一行中断。应用程序启动并执行,然后在第一行中断。n“运行到光
9、标处运行到光标处”:则应用程序启动并一直运行到断点或光标位置,具体看是则应用程序启动并一直运行到断点或光标位置,具体看是断点在前还是光标在前。可以在源窗口中设置光标位置。断点在前还是光标在前。可以在源窗口中设置光标位置。某些情况下,不出现中断,这意味着执行始终未到达设置某些情况下,不出现中断,这意味着执行始终未到达设置光标处的代码。光标处的代码。断点是在程序中设置的一个位置,程序执行到些位置断点是在程序中设置的一个位置,程序执行到些位置时中断(或暂停)。时中断(或暂停)。断点的作用是在调试程序时,当程序执行到断点的语断点的作用是在调试程序时,当程序执行到断点的语句时会暂停程序的运行,供程序员检
10、查这一位置上程序元句时会暂停程序的运行,供程序员检查这一位置上程序元素的运行情况,有助于定位产生错误输出或出错的代码段。素的运行情况,有助于定位产生错误输出或出错的代码段。12.2.3 12.2.3 设置断点设置断点设置断点设置断点设置和取消断点的方法如下:设置和取消断点的方法如下:方法方法1:用鼠标右键单击某代码行,从出现的快捷菜单用鼠标右键单击某代码行,从出现的快捷菜单中选择中选择“断点断点”|“插入断点插入断点”命令(设置断点)或者命令(设置断点)或者“断点断点”|“删除断点删除断点”命令(取消断点)。命令(取消断点)。方法方法2:将光标移至需要设置断点的语句处,然后按将光标移至需要设置
11、断点的语句处,然后按F9键键。方法方法3:单击代码行的左侧。单击代码行的左侧。12.2.3 12.2.3 设置断点设置断点设置断点设置断点12.2.3 12.2.3 设置断点设置断点设置断点设置断点当某行代码中出现错误时,该错误会自动添加到当某行代码中出现错误时,该错误会自动添加到“错误错误列表列表”和和“输出输出”窗口中。窗口中。可以使用可以使用“错误列表错误列表”或或“输出输出”窗口来查找代码中的窗口来查找代码中的错误。错误。其操作是:其操作是:双击双击“错误列表错误列表”或或“输出输出”窗口中的项,则光标自动窗口中的项,则光标自动定位到代码编辑器中相应的出错行。定位到代码编辑器中相应的出
12、错行。12.2.4 12.2.4 定位错误定位错误定位错误定位错误另外:另外:在编辑代码时,会在编码错误语句相应位置下显示一条在编辑代码时,会在编码错误语句相应位置下显示一条波浪线。将鼠标悬停在带有波浪线标记的代码上可显示一波浪线。将鼠标悬停在带有波浪线标记的代码上可显示一条消息,其中对错误进行了描述。条消息,其中对错误进行了描述。12.2.4 12.2.4 定位错误定位错误定位错误定位错误12.2.5 12.2.5 调试过程调试过程调试过程调试过程功能功能快捷键快捷键说明说明启动调试启动调试F5自动附加调式器自动附加调式器,并从,并从“属性属性”对话对话框中指定的启动项目中运行应用程序。如果
13、为框中指定的启动项目中运行应用程序。如果为“中断中断”模式,则更改为模式,则更改为“继续继续”。开始执行不开始执行不调试调试Ctrl+F5在在不调用调试器不调用调试器的情况下运行代码。的情况下运行代码。停止调试停止调试 Shift+F5停止运行程序中的当前应用程序。可用于停止运行程序中的当前应用程序。可用于“中中断断”模式和模式和“运行运行”模式。模式。逐语句逐语句F11每次执行一行语句,如碰到函数调用,在进入每次执行一行语句,如碰到函数调用,在进入函数调用后,逐条语句执行代码。函数调用后,逐条语句执行代码。逐过程逐过程F10执行下一行代码,但不执行任何函数调用。碰执行下一行代码,但不执行任何
14、函数调用。碰到函数时,不进入函数,把函数调用当成一条到函数时,不进入函数,把函数调用当成一条语句执行。语句执行。12.2.5 12.2.5 调试过程调试过程调试过程调试过程功能功能快捷键快捷键说明说明切换断点切换断点F9在当前行设置或移除断点。在当前行设置或移除断点。断点断点Ctrl+Alt+B或或Alt+F9显示显示“断点断点”对话框,在此可添加和修改断点。对话框,在此可添加和修改断点。清除所有断清除所有断点点Ctrl+Shift+F9清除项目中的所有断点。清除项目中的所有断点。显示下一语显示下一语句句Alt+数字键数字键区中的区中的*突出显示要执行的下一条语句。突出显示要执行的下一条语句。
15、12.2.5 12.2.5 调试过程调试过程调试过程调试过程功能功能快捷键快捷键说明说明局部变量局部变量 Ctrl+Alt+V,L 或或Alt+4显示显示“局部变量局部变量”窗口,以查看当前堆栈帧窗口,以查看当前堆栈帧中每个过程的变量及变量值。中每个过程的变量及变量值。即时即时Ctrl+Alt+I显示显示“即时即时”窗口,在此可计算表达式和执窗口,在此可计算表达式和执行个别命令。行个别命令。进程进程 Ctrl+Alt+P显示显示“进程进程”对话框,该对话框允许在单个对话框,该对话框允许在单个解决方案中同时调试多个程序。解决方案中同时调试多个程序。快速监视快速监视 Ctrl+Alt+Q-或或 S
16、hift+F9显示带有选定表达式的当前值的显示带有选定表达式的当前值的“快速监视快速监视”对话框。仅适用于对话框。仅适用于“中断中断”模式。使用该模式。使用该命令可检查尚未为其定义监视表达式的变量、命令可检查尚未为其定义监视表达式的变量、属性或其他表达式的当前值。属性或其他表达式的当前值。反汇编反汇编Alt+8显示显示“反汇编反汇编”窗口。窗口。切换反汇切换反汇编编Ctrl+F11显示当前源文件的反汇编信息。仅可用于调显示当前源文件的反汇编信息。仅可用于调试器的试器的“中断中断”模式。模式。12.2.5 12.2.5 调试过程调试过程调试过程调试过程功能功能快捷键快捷键说明说明监视监视 Ctr
17、l+Alt+W,1显示显示“Watch1”窗口,以查看所选变量或监窗口,以查看所选变量或监视表达式的值。视表达式的值。监视监视 Ctrl+Alt+W,2显示显示“Watch2”窗口,以查看所选变量或监窗口,以查看所选变量或监视表达式的值。视表达式的值。监视监视 Ctrl+Alt+W,3显示显示“Watch3”窗口,以查看所选变量或监窗口,以查看所选变量或监视表达式的值。视表达式的值。监视监视 Ctrl+Alt+W,4显示显示“Watch4”窗口,以查看所选变量或监窗口,以查看所选变量或监视表达式的值。视表达式的值。F5F5:先在某行设置断点,然后在调试器中按先在某行设置断点,然后在调试器中按F
18、5键运行应用键运行应用程序,应用程序会在该行停止,此时可以检查任何给程序,应用程序会在该行停止,此时可以检查任何给定变量的值,或观察执行跳出循环的时间和方式。定变量的值,或观察执行跳出循环的时间和方式。F10F10:按按F10键逐行单步执行代码。键逐行单步执行代码。12.2.5 12.2.5 调试过程调试过程调试过程调试过程在程序中断的状况下,将鼠标放在希望观察的执行过的语句在程序中断的状况下,将鼠标放在希望观察的执行过的语句变量上面,调试器就会自动显示执行到断点时该变量的值,如下变量上面,调试器就会自动显示执行到断点时该变量的值,如下图:图:12.2.6 12.2.6 显示调试信息显示调试信
19、息显示调试信息显示调试信息也可以在某个对象上的右键也可以在某个对象上的右键快捷菜单中选择快捷菜单中选择“快速监视快速监视”命令,即可观察到对象中各个命令,即可观察到对象中各个元素的值,并可修改元素的值,并可修改.如右图:如右图:局部变量窗口:局部变量窗口:可以显示局部变量的值的变化情况可以显示局部变量的值的变化情况12.2.6 12.2.6 显示调试信息显示调试信息显示调试信息显示调试信息调试工具的功能调试工具的功能12.2.6 12.2.6 显示调试信息显示调试信息显示调试信息显示调试信息调试工具调试工具功能功能断点断点选中一行代码,程序执行到该行就中止执行选中一行代码,程序执行到该行就中止
20、执行逐语句逐语句执行程序代码的下一行,并跟踪到方法中执行程序代码的下一行,并跟踪到方法中逐过程逐过程执行程序代码的下一行,但不跟踪到方法中执行程序代码的下一行,但不跟踪到方法中跳出跳出执行当前过程的其他部分,并在调试过程的下一行中断执行执行当前过程的其他部分,并在调试过程的下一行中断执行本地窗口本地窗口显示局部变量的当前值显示局部变量的当前值监视窗口监视窗口显示选定表达式的值显示选定表达式的值快速监视快速监视当程序处于中断模式时,列出表达式的当前值当程序处于中断模式时,列出表达式的当前值调用堆栈调用堆栈当处于中断模式时,出现一个对话框显示所有但尚未完成运当处于中断模式时,出现一个对话框显示所有
21、但尚未完成运行的过程行的过程12.3异常处理异常处理异常是指在程序运行期间发生的错误或以外情况,例如异常是指在程序运行期间发生的错误或以外情况,例如除零错误或内存不足警告等,就会产生一个异常。除零错误或内存不足警告等,就会产生一个异常。n异常异常异常处理是指解释和处理因程序错误而产生的异常。异常处理是指解释和处理因程序错误而产生的异常。如果对于给定的异常没有异常处理程序,则程序将停止运如果对于给定的异常没有异常处理程序,则程序将停止运行,并给出错误信息。行,并给出错误信息。n异常处理异常处理异常处理非常重要。异常处理非常重要。12.12.3 3.1 1 异常概述异常概述异常概述异常概述12.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第12章 错误调试和异常处理 12 错误 调试 异常 处理
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内