程序调试与异常处理

程序调试与异常处理

ID:39611347

大小:710.00 KB

页数:18页

时间:2019-07-07

程序调试与异常处理_第1页
程序调试与异常处理_第2页
程序调试与异常处理_第3页
程序调试与异常处理_第4页
程序调试与异常处理_第5页
资源描述:

《程序调试与异常处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VisualC#.Net程序设计2021/9/151湘潭职业技术学院工学院第九章程序调试与异常处理9.1程序错误9.2程序的异常处理2021/9/152湘潭职业技术学院工学院9.1程序错误一、程序错误分类二、调试错误的三种方法2021/9/153湘潭职业技术学院工学院一、程序错误分类1.语法错误它是最容易被发现和解决的一类错误,是指在程序设计过程中,出现不符合C#语法规则的程序代码。这类错误在代码编写期间,VS编辑器都能够自动指出,并会用波浪线在错误代码的下方标记出来。2021/9/154湘潭职业技术学院工学院2.运行时错误

2、是指在应用程序试图执行系统无法执行的操作时产生的错误,即我们通常所说的系统报错。这类错误编译器是无法自动检查出来,通常需要我们对输入的代码进行手动检查并更正。3.逻辑错误常常是由于人为因素,如推理和设计算法本身的错误造成的。这类错误是最不易发现,同时也是最难解决的。这类错误编译器是无法检查,只有通过开发人员仔细认真的态度和不懈努力才能解决。2021/9/155湘潭职业技术学院工学院二、调试错误的三种方法1.调试菜单及工具栏启动调试全部中断停止调试逐语句逐过程跳出断点2021/9/156湘潭职业技术学院工学院2.单步执行每执行

3、一行代码,程序就暂停执行,直到再次执行。这样可以通过查看各变量、对象等的值来判断该行代码是否出错。F10和F11F10:只执行调用函数的代码,不会执行函数本身的代码。F11:可查看函数本身代码是否出错跳出:退出函数体演示:实例2021/9/157湘潭职业技术学院工学院3.设置断点断点,是一种信号,通知调试器应该在某处中断应用程序并暂停执行。该方法可以让程序一直执行,直到遇到断点,然后开始调试。这大大加快调试过程。设置方法一:单击右键设置方法二:单击当前行设置方法三:按F9键2021/9/158湘潭职业技术学院工学院4.人工寻

4、找逻辑错误添加注释:注释掉可能出错的代码行添加语句或控件:适当地添加输出语句或类似标签的控件,可获取更多辅助信息。示例:见教材返回2021/9/159湘潭职业技术学院工学院9.2程序的异常处理一、异常处理概念二、Try-Catch语句三、Finally语句四、Throw语句2021/9/1510湘潭职业技术学院工学院一、异常处理概念异常指影响程序正常执行的事件。如内存不够、磁盘出错、用户非法输入等。异常处理是指对异常事件的处理方法,它是一种处理机制。异常出现后若得以妥善处理,则不会导致程序终止执行。2021/9/1511湘潭

5、职业技术学院工学院异常具有以下特点:各种类型的异常最终都是由System.Exception派生而来。在可能引发异常的语句周围使用try块。一旦try块中发生异常,控制流将跳转到第一个关联的异常处理程序(无论该处理程序存在于调用堆栈中的什么位置)。在C#中,catch关键字用于定义异常处理程序。如果给定异常没有异常处理程序,则程序将停止执行,并显示一条错误消息。除非您可以处理某个异常并使应用程序处于已知状态,否则请不要捕捉该异常。如果捕捉System.Exception,请在catch块的末尾使用throw关键字再次引发该异

6、常。2021/9/1512湘潭职业技术学院工学院异常具有以下特点:如果catch块定义了一个异常变量,则可以用它获取有关所发生异常类型的更多信息。程序可以使用throw关键字显式地引发异常。异常对象包含有关错误的详细信息,比如调用堆栈的状态以及有关错误的文本说明。即使发生异常也会执行finally块中的代码。使用finally块释放资源,例如,关闭在try块中打开的任何流或文件。2021/9/1513湘潭职业技术学院工学院二、Try-Catch语法格式Try{//可能引发异常的代码块;}Cacth[异常对象]//捕获异常类对

7、象{//如果上面代码发生异常则可在此编写相应的异常处理代码}2021/9/1514湘潭职业技术学院工学院公共语言运行库预定义的系统异常类。异常类说明AccessViolationException在试图读写受保护内存时引发的异常ApplicationException发生非致命应用程序错误时引发的异常ArithmeticException因算术运算、类型转换或转换操作时引发的异常DivideByZeroException试图用零除整数值或十进制数值时引发的异常FieldAccessException试图非法访问类中私有字段或

8、受保护字段时引发的异常IndexOutofRangeException试图访问索引超出数组界限的数值时引发的异常InvalidCastException因无效类型转换或显示转换引发的异常NotSupportedException当调用的方法不受支持时引发的异常NullReferenceEx

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。