电子讲稿学习单元10异常_第1页
电子讲稿学习单元10异常_第2页
电子讲稿学习单元10异常_第3页
电子讲稿学习单元10异常_第4页
电子讲稿学习单元10异常_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单位:面向对象程序设计C#课程组”能力本位“人才培养模式基础理论知识适度技术应用能力强操作技能强知识面宽、综合素质较高”能力本位“人才培养模式基础理论知识适度技术应用能力强操作技能强知识面宽、综合素质较高”能力本位“人才培养模式基础理论知识适度技术应用能力强操作技能强知识面宽、综合素质较高学习单元十: CRM项目运行时意外应对策略 面向对象程序设计c# 任务10-1 程序有可能产生的错误 1、情境分析2、理论浅析3、案例剖析 4、学生练习 情境分析 确定程序中错误的种类及应对策略5、多元评估 6、温故知新 一、情境分析情境 HNU公司诚信集团项目组的CRM项目已经实现了界面处理的程序。程序在单

2、元测试的过程发现如果用户在输入菜单选项时不小心输入了两个或多个字符,程序会异常退出。解决这个问题,只能使用C#的异常处理机制是最佳方案。这一节内容学习完成后,我们需要帮助他达成一个目标:将项目中极有可能发生异常的代码放入异常处理机制的保护之下。本次课我们需分析程序中有可能出现的错误,以及有可能发生的异常。 任务10-1 程序有可能产生的错误1、情境分析2、理论浅析3、案例剖析 4、学生练习 理论浅析程序中错误的类型 5、多元评估 6、温故知新 C#异常类层次结构一、 程序中错误的类型语法错误运行时错误逻辑错误二、 C#异常类层次结构任务10-1 程序有可能产生的错误1、情境分析2、理论浅析3、

3、案例剖析 4、学生练习 案例剖析C#异常机制的优势5、多元评估 6、温故知新 一、案例剖析案例 依靠“人工”书写大量与核心操作无关的代码来检查正常代码的执行成败,既麻烦且容易出错。其实,在C#中提供了一种更好的处理异常情况的方式,将异常表示成类,然后使用几个关键字(try、catch、finally、throw)与异常类配合检测异常、处理异常,从而保护程序在遇到意外情况时仍然能够继续运行。这种结构化的、统一的和类型安全的异常处理方式让我们更好地应对程序运行时的意外情况。 任务10-1 程序有可能产生的错误1、情境分析2、理论浅析3、案例剖析 4、学生练习 学生练习分析代码有可能的异常类型,并使

4、用导常处理机制5、多元评估 6、温故知新 一、学生练习练习 搜索网络上一些早期高级语言写的代码,查找其中是否包含大量的用于错误处理的代码,是否影响到了代码的维护和阅读。任务10-1 程序有可能产生的错误1、情境分析2、理论浅析3、案例剖析 4、学生练习 多元评估评价学生练习效果5、多元评估 6、温故知新 多元评估评估 分组搜索整理资料 评估同学们搜索资料、分析资料、自学的能力。任务10-1 程序有可能产生的错误1、情境分析2、理论浅析3、案例剖析 4、学生练习 温故知新回顾课上内容5、多元评估 6、温故知新 C#简介温故知新按照程序产生的错误性质,可分类三类:语法错误、运行时错误、逻辑错误。依

5、靠“人工”书写大量与核心操作无关的代码来检查正常代码的执行成败,既麻烦且容易出错。其实,在C#中提供了一种更好的处理异常情况的方式,将异常表示成类,然后使用几个关键字(try、catch、finally、throw)与异常类配合检测异常、处理异常,从而保护程序在遇到意外情况时仍然能够继续运行。任务10-2 使用异常处理机制应对运行时意外 1、情境分析2、理论浅析3、案例剖析 4、学生练习 情境分析 使用异常处理机制处理用户输入意外数据5、多元评估 6、温故知新 一、情境分析情境 HNU公司诚信集团项目组的CRM项目已经实现了界面处理的程序。程序在单元测试的过程发现如果用户在输入菜单选项时不小心

6、输入了两个或多个字符,程序会异常退出。解决这个问题,只能使用C#的异常处理机制是最佳方案。这一节内容学习完成后,我们需要帮助他达成一个目标:将项目中极有可能发生异常的代码放入异常处理机制的保护之下。请定义异常代码,以保护程序能从非致命意外中恢复。 任务10-2 使用异常处理机制应对运行时意外 1、情境分析2、理论浅析3、案例剖析 4、学生练习 理论浅析异常处理 5、多元评估 6、温故知新 自定义异常 一、多catch块的处理一个 try 语句可能包含多个 catch 块。catch 块可以用参数的形式指定要捕捉的异常类型,此类型称为“异常筛选器”。 二、使用throw手动抛出异常异常的引发有两

7、种情况,一种情况是执行C#程序时,因为意外,使某些操作无法正常完成,此时公共语言运行时 (CLR)会引发一个异常,从而指示程序运行出现错误。另一种情况是,在程序中用throw语句立即无条件引发异常,从而跳过某些不再有用的代码块或是给方法的调用者一个方法失败的信号。 throw new XXXException(); /XXXException可以是预定义异常,也可以是自定义异常。或者throw; / 表示重新抛出已捕获的异常,只能用在catch语句内部三、CLR与异常处理异常引发之后,公共语言运行时(CLR)会检查引发异常的语句是否在 try 块中。如果是,则检查与该 try 块关联的所有 c

8、atch 块,以确定它们是否能够捕获该异常。如果引发异常的语句不在 try 块中,或者包含该语句的 try 块没有匹配的 catch 块,公共语言运行时(CLR)将检查调用方法中是否有 try 语句和 catch 块,如果仍然找不到,将在调用方法的调用方法里继续查找,这种搜索会持续,直到找到针对它的 catch 块。 四、自定义异常 通过从 Exception 派生,可以创建您自己的异常类,一般至少要提供四个构造函数,必要的话也可以添加额外的属性。用户定义的异常类构造函数使用 base 关键字来调用基类构造函数,并发送相应的消息。 任务10-2 使用异常处理机制应对运行时意外 1、情境分析2、

9、理论浅析3、案例剖析 4、学生练习 案例剖析处理用户输入意外5、多元评估 6、温故知新 一、案例剖析案例 异常处理机制最大的用处是,当程序运行时,如果遇到一个非致命的错误,程序仍然能够从错误中恢复。如果我们捕获的异常会造成后续的程序运行错误,那其实也就没有捕获的必要了。这一点大家要理解。任务10-2 使用异常处理机制应对运行时意外 1、情境分析2、理论浅析3、案例剖析 4、学生练习 学生练习给项目中所有需要的代码添加异常处理机制5、多元评估 6、温故知新 一、学生练习练习 给项目中所有需要的代码添加异常处理机制,注意捕获的异常类型。任务10-2 使用异常处理机制应对运行时意外 1、情境分析2、

10、理论浅析3、案例剖析 4、学生练习 多元评估评价学生练习效果5、多元评估 6、温故知新 多元评估评估 评估同学们举一仿三的能力,能够根据示例完成练习。任务10-2 使用异常处理机制应对运行时意外 1、情境分析2、理论浅析3、案例剖析 4、学生练习 温故知新回顾课上内容5、多元评估 6、温故知新 C#简介温故知新异常对象抛出后,代码中的catch块会依照处理规则捕获并处理异常。值得注意的是,异常对象的抛出是由CLR自动抛出的,如果要手动抛出异常则可以使用关键字throw。无论异常是否发生,或者发生了后是否被捕获,finally语句块是一定会执行的,这样就不用担心一些资源清理工作没有完成,而对程序

11、的后续运行产生影响。C#语言中所有异常类的基类是Exception,程序中所有的异常类类型必须直接或间接继承 Exception类。一个 try 语句可能包含多个 catch 块。catch 块可以用参数的形式指定要捕捉的异常类型,此类型称为“异常筛选器”。如果某个 catch 块的“异常筛选器”与try块中抛出的异常对象类型或异常对象基类的类型相同,则执行该 catch 块中的异常处理程序。C#简介温故知新catch 语句的顺序很重要,在任何情况下都应该按照从最具体(派生程度较高,如DivideByZeroException)到最不具体(派生程序较低,如Exception)这一顺序排列 ca

12、tch 块,否则编译器将发现错误异常的引发有两种情况,一种情况是执行C#程序时,因为意外,使某些操作无法正常完成,此时公共语言运行时 (CLR)会引发一个异常,从而指示程序运行出现错误。另一种情况是,在程序中用throw语句立即无条件引发异常,从而跳过某些不再有用的代码块或是给方法的调用者一个方法失败的信号.如果引发异常的语句不在 try 块中,或者包含该语句的 try 块没有匹配的 catch 块,CLR将在方法调用堆栈里寻找异常处理程序。避免捕获类似System.Exception、System.SystemException这样一般化的异常。避免使用异常来控制正常的程序流程。避免在异常消息中使用问号或感叹号,并且不要在异常消息中泄漏安全信息。谢 谢!”能力本位“人才培养模式基础理论知识适度技术应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论