欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    教学课件第12章 异常处理.ppt

    • 资源ID:12723776       资源大小:379.50KB        全文页数:23页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    教学课件第12章 异常处理.ppt

    C#程序设计案例教程程序设计案例教程第第12章章 异常处理异常处理 第第12章章 异常处理异常处理 学习目标学习目标掌握异常的定义和处理。掌握异常的定义和处理。熟悉自定义异常的定义。熟悉自定义异常的定义。第第12章章 异常处理异常处理 12.1 异常异常【课堂案例课堂案例12-1】执行下面的程序将出现异常执行下面的程序将出现异常,请用异常处理请用异常处理机制修改程序。机制修改程序。Class ArrayOutOfIndex public void calculateSum() int sum = 0; int count ; int number = new int51,2,3,4,5; for(count=1;count=5;count+) sum+=numbercount; Console.WriteLine(“The sum of the array is :0”,sum); Class Program static void Main(string args) ArrayOutOfIndex obj = new ArrayOutOfIndex(); obj.calculateSum(); 第第12章章 异常处理异常处理 课堂案例12-1运行时出现的异常第第12章章 异常处理异常处理 【案例学习目标案例学习目标】掌握异常的概念。掌握异常的概念。掌握异常的处理机制。掌握异常的处理机制。【案例知识要点案例知识要点】异常的概念与处理机制。异常的概念与处理机制。【案例完成步骤案例完成步骤】(1)初步认识异常。)初步认识异常。(2)使用异常的处理机制。)使用异常的处理机制。(3)修改应用程序。)修改应用程序。第第12章章 异常处理异常处理 12.1.1 初步初步认识异常认识异常下面通过一段简单代码来认识异常。class Program static void Main(string args) int a,b,c; a=2; b=0; c=a/b; 按Ctrl+F5组合键执行上述程序时,会弹出一个对话框,提示程序在执行过程中碰到问题,出现的对话框如下图所示:第第12章章 异常处理异常处理 出现上述情况是因为程序遇到了异常,产生的异常类为System.DivideByZeroException,出现异常的原因是因为除数为0。异常是程序在执行期间发生的错误情况。当程序发生异常时,系统就会抛出一个错误。异常类是对异常的分类。它们是由System.Exception类派生出来的,关于异常类的层次结构如下图所示:System.ExceptionSystem.ApplicationExceptionSystem.SystemException第第12章章 异常处理异常处理 System.ApplicationException和System.SystemException是System.Exception的直接子类,System.ApplicationException类是用户类型异常,如果用户想在程序中定义自己的异常,将要定义从该异常类继承的异常。System.SystemException是所有预定义系统异常的基类。一些派生自System.SystemException类的常用基类如下表所示:类类说明说明System.IO.IOException发生发生I/O错误时引发的异常错误时引发的异常System.IndexOutOfRangeException试图访问索引超出数组界限的数组试图访问索引超出数组界限的数组元素时引发的异常。无法继承此类元素时引发的异常。无法继承此类System.NullReferenceException尝试取消引用空对象引用时引发的尝试取消引用空对象引用时引发的异常异常System.OutOfMemoryException没有足够的内存继续执行程序时引没有足够的内存继续执行程序时引发的异常发的异常第第12章章 异常处理异常处理 l 程序错误的分类根据错误出现的阶段,通常可以将程序错误分为如下三种:编译时错误、结果错误和运行时错误。(1)编译时错误:这种错误是发生在程序编写过程中,是指程序语法编写上出现的错误。(2)结果错误:结果错误指的是程序本身没有语法上的错误(即无编译错误),在程序运行期间也没有出现类似上图的错误提示。但程序执行后得到的结果并不正确。这是由于程序设计思路上存在的缺陷,是程序算法在实现功能时出现的逻辑上的问题。(3)运行时错误:是指编译已通过,运行时发生的错误。运行时错误时由于与用户交互或对外设或网络的访问等可变情况,程序设计时考虑欠周全而导致的。第第12章章 异常处理异常处理 12.1.2 异常异常的处理机制的处理机制在C#中是通过try、catch和finally块来实现异常处理的。1. try程序块用户需要将可能导致异常的语句放入try程序块中。try程序块的使用方法如下:try /可能导致异常的语句try程序块管理放入其中的语句,并定义相关的异常处理程序的范围。换句话说,如果异常发生在try程序块内,与try程序块相关的异常处理程序将处理该异常。ty程序块必须紧跟至少一个catch程序块。第第12章章 异常处理异常处理 2. catch程序块通过在try程序块后紧跟一个或多个catch处理程序可以将异常处理程序和try程序块关联起来。下列代码框架说明了catch程序块的使用。try /可能导致异常的语句catch() /异常处理代码catch语句将异常类的对象作为参数。如果异常发生了,就执行catch程序块中的语句。catch程序块的处理范围仅限于先前try程序块中的相关语句。第第12章章 异常处理异常处理 3. finally程序块finally用于执行不论异常是否被抛出都会被执行的一个语句块。例如,在实现文件操作的过程中不管有没有异常,文件必须被关闭,文件被关闭的操作可放置在finally块中。try /可能导致异常的语句catch() /异常处理代码finally /最后的执行代码finally程序块跟在catch程序块后面。对于一个异常处理程序,只能有一个finally程序块。但是,并不是一定要使用finally程序块。第第12章章 异常处理异常处理 对于课堂案例12-1,要处理程序运行过程中出现的System.OutOfMemoryException异常,需要使用trycatch程序块。处理代码如下:try /捕获异常 for(count=1;count=5;count+) sum += numbercount; Console.WriteLine(“The sum of the array is :0”,sum);catch(IndexOutOfRangeException e) Console.WriteLine(e.Message);说明:说明:(1)在)在trycatch结构中,结构中,catch语句块可以有多个,读者可以根据情况而定,但至少要有一个语句块可以有多个,读者可以根据情况而定,但至少要有一个catch语句块。语句块。(2)catch语句,按异常类型从深层派生异常类型到异常基类型(从特殊到一般)的顺序排列。若颠倒顺序则语句,按异常类型从深层派生异常类型到异常基类型(从特殊到一般)的顺序排列。若颠倒顺序则参数为异常基类类型的参数为异常基类类型的catch语句将截获所有语句将截获所有try语句抛出的异常对象。语句抛出的异常对象。(3)在)在C#中处理异常时,当不能明确系统异常时,可以直接使用中处理异常时,当不能明确系统异常时,可以直接使用System.Exception类。类。第第12章章 异常处理异常处理 12.1.3 修改应用程序修改应用程序 对对课堂案例课堂案例12-1的错误程序进行异常处理后的完整代码的错误程序进行异常处理后的完整代码如下:如下:Class ArrayOutOfIndex public void calculateSum() int sum=0; int count; int number =new int5 1,2,3,4,5; try /捕获异常 for(count=1;count=5;count+) sum += numbercount; Console.WriteLine(“The sum of the array is : 0”,sum); catch(IndexOutOfRangeException e) Console.WriteLine(e.Message); Class Program static void Main(string args) ArrayOutOfIndex obj = new ArrayOutOfIndex(); obj.calculateSum(); 第第12章章 异常处理异常处理 课堂实践课堂实践12-1修改下面的程序,使程序能够正常结束。修改下面的程序,使程序能够正常结束。using System;class ExceptionExam public static void Main() int nums1 = 22,23,24,25,26; int nums2 = 2,0,4,0; for(int i=0;inums1.Length;i+) Console.WriteLine(nums1i/nums2); 第第12章章 异常处理异常处理 12.2 自定义异常自定义异常【课堂案例课堂案例12-2】阅读下面的程序,识别用到的异常并预测程序的输阅读下面的程序,识别用到的异常并预测程序的输出结果。出结果。/定义用户自定义异常定义用户自定义异常Public class CountIsZeroException:ApplicationException public CountIsZeroException (string message):base(message) Public class Calculate int sum; int count; int average; public int Sum get return sum; set sum=value; public int Count get return count; set count =value; public void doAverage() if(0=count) throw(new CountIsZeroException(“除数是除数是0”); else average=sum/count; 第第12章章 异常处理异常处理 Class Program static void Main(string args) Calculate obj = new Calculate(); try obj.Sum=0; obj.Count=0; obj.doAverage(); catch(CountIsZeroException e) Console.WriteLine(“CountIsZeroException:0”,e.Message); 第第12章章 异常处理异常处理 【案例学习目标案例学习目标】掌握自定义异常的使用。掌握自定义异常的使用。【案例知识要点案例知识要点】自定义异常。自定义异常。【案例完成步骤案例完成步骤】(1)初步认识用户自定义异常。)初步认识用户自定义异常。(2)预测程序的输出结果。)预测程序的输出结果。第第12章章 异常处理异常处理 12.2.1 初次初次认识用户自定义异常类认识用户自定义异常类 1.定义用户自定义异常定义用户自定义异常.NET框架为程序人员提供了大量的预定义异常类,一些常见错误引发的异常都能被预定义的异常类捕捉。然后,在实际的程序设计过程中,编程人员可能需要根据程序运行的具体情况,人为地创建自己的异常类来处理某些特殊状况,这种类型的异常称为自定义异常。自定义异常类派生自ApplicationException类。要创建用户自定义的异常,必须首先声明它,声明的格式为: class 自定义异常名:ApplicationException 第第12章章 异常处理异常处理 例如:声明一个自定义异常MyException:Class MyException:ApplicationException /自定义异常通常继承 ApplicationException异常类 public MyException() : base() public MyException(string e) : base(e) public MyException(string e,Exception inner) : base(e,inner) 第第12章章 异常处理异常处理 2.抛出异常抛出异常在完成自定义异常类定义的基础上,我们需要进一步明确在程序运行到何处时,适时地抛出异常对象。在C#中使用throw关键字实现抛出异常的处理机制,称为“自定义异常处理机制”。具体的使用格式如下:throw 表达式;例如,抛出上面定义的MyException异常:throw (new CountIsZeroException(“除数是”); /使用throw抛出异常3.用户自定义异常的处理用户自定义异常的处理用户自定义异常类定义完成后,用户可以在catch语句块中实现自定义异常的处理方法。例如,对创建的MyException的处理方法如下:catch(MyException)Console.WriteLine(“This is My Exception”):第第12章章 异常处理异常处理 12.2.2 预测程序的输出结果预测程序的输出结果 根据对根据对课堂案例课堂案例12-2的分析,程序的输出结果为:的分析,程序的输出结果为:CountIsZeroException:除数是除数是0第第12章章 异常处理异常处理 课堂实践课堂实践12-2预测下面程序的输出结果。预测下面程序的输出结果。Class MainClass static void ProcessString(string s) if(s=null) throw new ArgumentNullException(); static void Main() try string s = null; ProcessString(s); catch(Exception e) Console.WriteLine(“0 Exception caught. ”,e);

    注意事项

    本文(教学课件第12章 异常处理.ppt)为本站会员(春哥&#****71;)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开