当前位置:文档之家› 【资料】计算机程序调试与异常处理汇编

【资料】计算机程序调试与异常处理汇编


14
三、Finally语句
有些特殊的事件,如文件的关闭、类对象的 析构等,不论是否捕捉到异常,都必须执行 的一段代码。该代码行就用Finally括起来。
常构成Try-Catch-Finally搭配。 示例
2020/7/12
湘潭职业技术学院工学院
15
四、Throw语句
Throw语句用于手动地抛出一个异常。即程 序员而不是系统告诉CLR什么时候发生异常 及发生什么样的异常。
异常类
说明
AccessViolationException ApplicationException ArithmeticException DivideByZeroException
在试图读写受保护内存时引发的异常 发生非致命应用程序错误时引发的异常 因算术运算、类型转换或转换操作时引发的异常 试图用零除整数值或十进制数值时引发的异常
返回
8
9.2 程序的异常处理
一、异常处理概念 二、Try-Catch语句 三、Finally语句 四、Throw语句
2020/7/12
湘潭职业技术学院工学院
9
一、异常处理概念
异常指影响程序正常执行的事件 。如内存 不够、磁盘出错、用户非法输入等。 异常处理是指对异常事件的处理方法,它是 一种处理机制。异常出现后若得以妥善处理, 则不会导致程序终止执行。
因无效类型转换或显示转换引发的异常 当调用的方法不受支持时引发的异常 尝试取消引用空对象时引发的异常
OutOfMemoryExcepiton OverFlowException
没有足够的内存继续执行应用程序时引发的异常 在选中的上下文所执行操作导致溢出时引发的异常
2020/7/12
湘潭职业技术学院工学院
语法格式:Throw[异常对象]
2020/7/12
湘潭职业技术学院工学院
返回
16
本章要点
C#程序错误可分为三类:语法错误、运行时 错误、逻辑错误。
Visual Studio 提供了强大的调试器,本章主 要介绍了三种常用的调试方法:单步调试、设 置断点调试、人工手动调试
2020/7/12
湘潭职业技术学院工学院
10异常具有以下特点:各种类型的异常最终都是由 System.Exception 派生而来。
在可能引发异常的语句周围使用 try 块。
一旦 try 块中发生异常,控制流将跳转到第 一个关联的异常处理程序(无论该处理程序 存在于调用堆栈中的什么位置)。在 C# 中, catch 关键字用于定义异常处理程序。
➢ 这类错误编译器是无法检查,只有通过开发人 员仔细认真的态度和不懈努力才能解决。
2020/7/12
湘潭职业技术学院工学院
4
二、调试错误的三种方法
1. 调试菜单及工具栏
2020/7/12
启动调试 全部中断 停止调试
逐语句 逐过程 跳出
断点
湘潭职业技术学院工学院
5
2.单步执行
每执行一行代码,程序就暂停执行,直到再 次执行。这样可以通过查看各变量、对象等 的值来判断该行代码是否出错。 F10和F11
计算机程序调试与异常处理
9.1 程序错误
一、程序错误分类 二、调试错误的三种方法
2020/7/12
湘潭职业技术学院工学院
2
一、程序错误分类
1. 语法错误
➢ 它是最容易被发现和解决的一类错误,是指在 程序设计过程中,出现不符合C#语法规则的程 序代码。
➢ 这类错误在代码编写期间,VS编辑器都能够自 动指出,并会用波浪线在错误代码的下方标记 出来。
11
异常具有以下特点:
如果 catch 块定义了一个异常变量,则可以 用它获取有关所发生异常类型的更多信息。
程序可以使用 throw 关键字显式地引发异 常。
异常对象包含有关错误的详细信息,比如调 用堆栈的状态以及有关错误的文本说明。
即使发生异常也会执行 finally 块中的代码。 使用 finally 块释放资源,例如,关闭在 try 块中打开的任何流或文件。
➢ 设置方法一: 单击右键 ➢ 设置方法二: 单击当前行 ➢ 设置方法三: 按F9键
2020/7/12
湘潭职业技术学院工学院
7
4.人工寻找逻辑错误
添加注释:注释掉可能出错的代码行 添加语句或控件:适当地添加输出语句或类
似标签的控件,可获取更多辅助信息。 示例:见教材
2020/7/12
湘潭职业技术学院工学院
如果给定异常没有异常处理程序,则程序将 停止执行,并显示一条错误消息。
除非您可以处理某个异常并使应用程序处于 已知状态,否则请不要捕捉该异常。如果捕 捉 System.Exception,请在 catch 块的末 尾使用 throw 关键字再次引发该异常。
2020/7/12
湘潭职业技术学院工学院
F10:只执行调用函数的代码,不会执行函 数本身的代码。
F11:可查看函数本身代码是否出错 跳出:退出函数体
演示:实例
2020/7/12
湘潭职业技术学院工学院
6
3.设置断点
断点,是一种信号,通知调试器应该在某处 中断应用程序并暂停执行。
该方法可以让程序一直执行,直到遇到断点, 然后开始调试。这大大加快调试过程。
2020/7/12
湘潭职业技术学院工学院
12
二、Try-Catch语法格式
Try
{ // 可能引发异常的代码块;
} Cacth [异常对象] // 捕获异常类对象
{ // 如果上面代码发生异常则可在此编写相应
的异常处理代码
}
2020/7/12
湘潭职业技术学院工学院
13
公共语言运行库预定义的系统异常类。
FieldAccessException
试图非法访问类中私有字段或受保护字段时引发的异常
IndexOutofRangeException 试图访问索引超出数组界限的数值时引发的异常
InvalidCastException NotSupportedException NullReferenceException
2020/7/12
湘潭职业技术学院工学院
3
2. 运行时错误
➢ 是指在应用程序试图执行系统无法执行的操作 时产生的错误,即我们通常所说的系统报错。
➢ 这类错误编译器是无法自动检查出来,通常需 要我们对输入的代码进行手动检查并更正。
3. 逻辑错误
➢ 常常是由于人为因素,如推理和设计算法本身 的错误造成的。这类错误是最不易发现,同时 也是最难解决的 。
相关主题