VisualCNET程序设计教程 第9章 程序调试与异常处理.ppt

VisualCNET程序设计教程 第9章 程序调试与异常处理.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子科大成都学院精品课程《Visual C# .Net程序设计》 Visual C# .Net 程序设计 电子科大成都学院计算机系 课件制作:罗福强 E-Mail: 第九章 程序调试与异常处理 9.1 程序错误 9.2 程序的异常处理 9.1 程序错误 一、程序错误分类 二、调试错误的三种方法 一、程序错误分类 1. 语法错误 它是最容易被发现和解决的一类错误,是指在程序设计过程中,出现不符合C#语法规则的程序代码。 这类错误在代码编写期间,VS编辑器都能够自动指出,并会用波浪线在错误代码的下方标记出来。 2. 运行期错误 是指在应用程序试图执行系统无法执行的操作时产生的错误,即我们通常所说的系统报错。 这类错误编译器是无法自动检查出来,通常需要我们对输入的代码进行手动检查并更正。 3. 逻辑错误 常常是由于人为因素,如推理和设计算法本身的错误造成的。这类错误是最不易发现,同时也是最难解决的 。 这类错误编译器是无法检查,只有通过开发人员仔细认真的态度和不懈努力才能解决。 二、调试错误的三种方法 1. 调试菜单及工具栏 2.单步执行 每执行一行代码,程序就暂停执行,直到再次执行。这样可以通过查看各变量、对象等的值来判断该行代码是否出错。 F10和F11 F10:只执行调用函数的代码,不会执行函数本身的代码。 F11:可查看函数本身代码是否出错 跳出:退出函数体 演示:实例9-4(见教材) 3.设置断点 断点,是一种信号,通知调试器应该在某处中断应用程序并暂停执行。 该方法可以让程序一直执行,直到遇到断点,然后开始调试。这大大加快调试过程。 设置方法一: 单击右键 设置方法二: 单击当前行 设置方法三: 按F9键 4.人工寻找逻辑错误 添加注释:注释掉可能出错的代码行 添加语句或控件:适当地添加输出语句或类似标签的控件,可获取更多辅助信息。 示例:见教材 9.2 程序的异常处理 一、异常处理概念 二、Try-Catch语句 三、Finally语句 四、Throw语句 一、异常处理概念 异常指影响程序正常执行的事件 。如内存 不够、磁盘出错、用户非法输入等。 异常处理是指对异常事件的处理方法。它是 一种处理机制,可以防止程序产生非正常状态 示例9-9(见教材) 二、Try-Catch语法格式 Try { // 可能引发异常的代码块; } Cacth [异常对象] // 捕获异常类对象 { // 如果上面代码发生异常则可在此编写相应的异常处理代码 } 公共语言运行库预定义的系统异常类。 一个简单的用户自定义异常 实例 9-10 代码阅读(见教材) 操作演示 代码分析 三、Finally语句 有些特殊的事件,如文件的关闭、类对象的析构等,不论是否捕捉到异常,都必须执行的一段代码。该代码行就用Finally括起来。 常构成Try-Catch-Finally搭配。 示例9-11(见教材) 四、Throw语句 Throw语句用于手动地抛出一个异常。即程序员而不是系统告诉CLR什么时候发生异常及发生什么样的异常。 语法格式:Throw[异常对象] 本章要点 C#程序错误可分为三类:语法错误、运行期错误、逻辑错误。 Visual Studio 提供了强大的调试器,本章主要介绍了三种常用的调试方法:单步调试、设置断点调试、人工手动调试 异常处理指针对程序中的异常事件处理方法。 Tty-Catch-Finally异常处理语句的使用。 作业 1. 书面作业(见本章教材) 2. 上机实验(见本章教材) Class Over Thank you! * * 启动调试 全部中断 停止调试 逐语句 逐过程 跳出 断点 返回 在选中的上下文所执行操作导致溢出时引发的异常 OverFlowException 没有足够的内存继续执行应用程序时引发的异常 OutOfMemoryExcepiton 尝试取消引用空对象时引发的异常 NullReferenceException 当调用的方法不受支持时引发的异常 NotSupportedException 因无效类型转换或显示转换引发的异常 InvalidCastException 试图访问索引超出数组界限的数值时引发的异常 IndexOutofRangeException 试图非法访问类中私有字段或受保护字段时引发的异常 FieldAccessException 试图用零除整数值或十进制数值时引发的异常 DivideByZeroException 因算术运算、类型转换或转换操作时引发的异常 ArithmeticException 发生非致命应用程序错误时引发的异常 ApplicationException 在试图读写受保护内存时引发的异常

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档