欢迎来到天天文库
浏览记录
ID:48031432
大小:2.45 MB
页数:49页
时间:2020-01-13
《C# 调试与异常处理.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章 调试与异常处理程序的开发过程难免会发生错误,在开发大型项目中,程序的调试是一个漫长的过程。本章将介绍在VS.NET开发环境下调试C#代码的各种方法,包括使用IDE的调试环境、人工寻找逻辑错误的常用策略,以及程序的异常处理机制。2021/7/212C#程序设计实用教程8.1程序调试技术VS.NET开发环境提供了强大的代码调试功能。本节将探讨如何利用它来快速消灭代码中的语法错误和逻辑错误。2021/7/213C#程序设计实用教程8.1.1使用VisualStudio.NET错误报告代码中的Bugs主要分为两种,一种是语法错误,另一
2、种是逻辑错误。首先,来看如何使用VS.NET来解决第一类问题。语法错误是指程序员所输入的指令违反了C#语言的语法规定,例如下面的表达式:Stringstr=’HelloWorld’;显然,这里应该使用双引号表示字符串变量。当使用VS.NET编译代码时,VS.NET会在“任务列表”窗口提示出现错误,如图8-1所示。2021/7/214C#程序设计实用教程8.1.1使用VisualStudio.NET错误报告双击错误提示,VS.NET将自动将光标定位到出现错误的代码中。除了上面介绍的这种明显的语法错误之外,还有一些稍微复杂的语法错误。例如
3、,试图在类外访问其私有成员,使用未赋值的变量等,都可以通过这种方式来解决。2021/7/215C#程序设计实用教程8.1.2寻找逻辑错误与语法错误相比,逻辑错误是更让人头痛的问题。逻辑错误是指代码在语法上没有错误,但是从程序的功能上看,代码却无法正确完成其功能。同样可以使用VS.NET来寻找逻辑错误。在调试模式下运行程序时,VS.NET并非仅仅是给出最后的结果,还保留了应用程序所有的中间结果,即VS.NET知道代码每一行都发生了什么。既然这样,程序员就可以通过跟踪这些中间结果,来发现Bug到底藏在哪里。为了便于介绍,首先给出一个含有逻
4、辑错误的示例代码如下:2021/7/216C#程序设计实用教程8.1.2寻找逻辑错误【例10-1】含有逻辑错误的示例。usingSystem;namespaceExample_LogicError{publicclassStudent{//////输出10次:“我不敢了!”///publicvoidPunish(){for(inti=0;i<=10;i++){Console.WriteLine("我不敢了!");}}}2021/7/217C#程序设计实用教程8.1.2寻找逻辑错误///5、ry>///Class1的摘要说明。///classClass1{//////应用程序的主入口点。///[STAThread]staticvoidMain(string[]args){Students=newStudent();s.Punish();}}}2021/7/218C#程序设计实用教程8.1.2寻找逻辑错误代码定义了一个学生类,其中有一个方法Punish(),希望输出10次“我不敢了!”。然而,结果却输出11次。相信读者已经找到了Bug在哪里,就是for语句的循环语句6、:for(inti=0;i<=10;i++)中的“i<=10”,应当改为“i<10”。然而,在实际的开发中,逻辑错误往往没有这么容易被发现。针对这个示例,下面来看如何使用VS.NET把Bug找出来。首先介绍如何配置VS.NET使其进入调试环境。2021/7/219C#程序设计实用教程8.1.2寻找逻辑错误想要跟踪代码,要把VS.NET配置为中断模式。这时,需要把程序的输出项选为Debug,操作很简单:在VS.NET工具菜单的“启动调试”按钮后面,调整下拉框的内容为Debug即可,如图8-2所示。2021/7/2110C#程序设计实用教7、程8.1.3单步执行程序首先可以使用单步执行来运行程序,然后跟踪代码的每一步代码,最后找到Bug在哪里。想要单步执行,可以使用快捷键F11,或者单击菜单命令【调试】→【逐语句】。开始单步执行后,程序将首先暂停在主函数的第一行,继续使用快捷键F10或F11可以向下执行。两者的区别在于:单步执行时,可以选择是否路过一行代码中所调用的方法,如果是,则使用F10;如果想要进入过程,进行更为细致的观察,则需要使用F11。另外,当程序暂停以后,VS.NET的监视窗口便可以显示当前执行位置的变量值情况,当使用F11单步Punish方法后,“监视”窗8、口如图8-3所示。2021/7/2111C#程序设计实用教程8.1.3单步执行程序监视窗口有3列,分别显示想要监视的变量名称、变量的值,以及变量的数据类型。如果想要监视某个变量的值,可以在监视窗口的“名称”栏直接输入这个
5、ry>///Class1的摘要说明。///classClass1{//////应用程序的主入口点。///[STAThread]staticvoidMain(string[]args){Students=newStudent();s.Punish();}}}2021/7/218C#程序设计实用教程8.1.2寻找逻辑错误代码定义了一个学生类,其中有一个方法Punish(),希望输出10次“我不敢了!”。然而,结果却输出11次。相信读者已经找到了Bug在哪里,就是for语句的循环语句
6、:for(inti=0;i<=10;i++)中的“i<=10”,应当改为“i<10”。然而,在实际的开发中,逻辑错误往往没有这么容易被发现。针对这个示例,下面来看如何使用VS.NET把Bug找出来。首先介绍如何配置VS.NET使其进入调试环境。2021/7/219C#程序设计实用教程8.1.2寻找逻辑错误想要跟踪代码,要把VS.NET配置为中断模式。这时,需要把程序的输出项选为Debug,操作很简单:在VS.NET工具菜单的“启动调试”按钮后面,调整下拉框的内容为Debug即可,如图8-2所示。2021/7/2110C#程序设计实用教
7、程8.1.3单步执行程序首先可以使用单步执行来运行程序,然后跟踪代码的每一步代码,最后找到Bug在哪里。想要单步执行,可以使用快捷键F11,或者单击菜单命令【调试】→【逐语句】。开始单步执行后,程序将首先暂停在主函数的第一行,继续使用快捷键F10或F11可以向下执行。两者的区别在于:单步执行时,可以选择是否路过一行代码中所调用的方法,如果是,则使用F10;如果想要进入过程,进行更为细致的观察,则需要使用F11。另外,当程序暂停以后,VS.NET的监视窗口便可以显示当前执行位置的变量值情况,当使用F11单步Punish方法后,“监视”窗
8、口如图8-3所示。2021/7/2111C#程序设计实用教程8.1.3单步执行程序监视窗口有3列,分别显示想要监视的变量名称、变量的值,以及变量的数据类型。如果想要监视某个变量的值,可以在监视窗口的“名称”栏直接输入这个
此文档下载收益归作者所有