110 likes | 268 Views
面向对象程序设计 C#.Net. 09 Windows 程序设计 I. 郑捷 lzj@fjnu.edu.cn 13509354412 http://www.lzj.name. 异常处理. 程序调试技术 异常概念 异常的发生 异常的默认处理形式 编程捕捉异常 异常与函数调用 抛出异常. 程序调试技术简介. 断点 Break Point 单步执行 Step 变量观察 Variable Watch 表达式求值 Expression Evaluation. 程序可能出现的问题. 语法错误(编译错误)和警告
E N D
面向对象程序设计C#.Net 09 Windows程序设计 I 郑捷 lzj@fjnu.edu.cn 13509354412 http://www.lzj.name
异常处理 • 程序调试技术 • 异常概念 • 异常的发生 • 异常的默认处理形式 • 编程捕捉异常 • 异常与函数调用 • 抛出异常 2009-2010-2
程序调试技术简介 • 断点 Break Point • 单步执行 Step • 变量观察 Variable Watch • 表达式求值 Expression Evaluation 2009-2010-2
程序可能出现的问题 • 语法错误(编译错误)和警告 • 由于语法引起的错误,或者由于名称不匹配等引起的错误。在录入、编译的时候就会给予提示 • 出现这种错误时,源代码无法变成可执行文件 • 运行时错误(异常) • 在运行的时候发生的意料之外的情况 • 逻辑错误 • 程序正常运行,但是结论与预期不符合 2009-2010-2
异常 • 异常是程序在运行遇到的任何错误情形或者意外行为 • 这些意外是可预期的,但是无法由编程人员控制是否发生 2009-2010-2
C#的异常处理 • C#采用了大部分面向对象编程语言所采用的try-catch结构来进行异常处理 • 称为结构化异常处理 • 是一种事后捕捉的处理方式 • 即:在try区域中,允许异常发生,在发生后,根据具体情况进行事后补救工作 2009-2010-2
try-catch-finally执行过程 try块 可能发生异常的语句 调用该段代码的地方 正常执行,未发生异常 发生异常,且被捕获处理 发生异常,但是无法被捕获处理 catch块 finally块 2009-2010-2
异常类 • 在catch中,我们可以通过异常类和变量来捕捉不同异常 • 系统定义了一系列的异常类型,用于处理不同的异常情况 2009-2010-2
异常的抛出 throw • 我们可以用throw语句产生异常 • throw语句用于向系统抛出一个异常,抛出后由异常处理机制进行处理 • 事实上,之前所谓的系统异常,都是由被我们调用的函数内部主动抛出的 2009-2010-2
结构化在异常处理中的作用 • 在结构化程序设计中,每个模块对其外围代码而言,是一个整体,一个有输入,有输出,完成特定任务的黑盒 • 这里模块指一个函数,或者只是一段代码 • 外围指调用这个函数的代码,或者这个模块前后的代码等 • 输入、输出对于函数而言主要是参数,以及全局变量,而对于代码段而言,主要是变量 • 有了结构化,程序就清晰了 2009-2010-2
Windows程序设计 2009-2010-2