第七章 异常处理基础篇精选文档.ppt

上传人:石*** 文档编号:69828116 上传时间:2023-01-09 格式:PPT 页数:32 大小:1.36MB
返回 下载 相关 举报
第七章 异常处理基础篇精选文档.ppt_第1页
第1页 / 共32页
第七章 异常处理基础篇精选文档.ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《第七章 异常处理基础篇精选文档.ppt》由会员分享,可在线阅读,更多相关《第七章 异常处理基础篇精选文档.ppt(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第七章第七章 异常处理基础篇异常处理基础篇本讲稿第一页,共三十二页1.1 1.1 错误处理的方法概述错误处理的方法概述1.传统的程序运行时错误处理传统的程序运行时错误处理2.异常处理异常处理本讲稿第二页,共三十二页1 1 传统的程序运行时错误处理传统的程序运行时错误处理如如C C语言:语言:1.1.函数返回值函数返回值=某个可能会执行失败的函数();某个可能会执行失败的函数();if(if(函数返回值函数返回值=表示该函数执行成功的值)表示该函数执行成功的值)正常代正常代码码 else if(else if(函数返回值函数返回值=代表错误情况代表错误情况1 1的值的值)处理错误情形处理错误情形

2、11else if(else if(函数返回值函数返回值=代表错误情况代表错误情况2 2的值的值)处理错误情形处理错误情形22 本讲稿第三页,共三十二页1 1 传统的程序运行时错误处理传统的程序运行时错误处理2.2.函数返回值函数返回值=某个可能会执行失败的函数();某个可能会执行失败的函数();if(if(函数返回值函数返回值!=!=表示该函数执行成功的值)表示该函数执行成功的值)Switch(Switch(函数返回值函数返回值)case case 错误情况错误情况1 1的值的值:处理错误情形处理错误情形1 1case case 错误情况错误情况2 2的值的值:处理错误情形处理错误情形2 2

3、elseelse正常代码正常代码 本讲稿第四页,共三十二页1 1 传统的程序运行时错误处理传统的程序运行时错误处理缺点:缺点:1 1)整个程序代码穿插错误处理代码,使得条)整个程序代码穿插错误处理代码,使得条理性和可读性差;理性和可读性差;2 2)对错误处理程序难以集中管理,难以保证)对错误处理程序难以集中管理,难以保证程序的一致性;程序的一致性;3 3)对于返回值的意义,要借助于文档,程序)对于返回值的意义,要借助于文档,程序维护困难。维护困难。本讲稿第五页,共三十二页2 2 异常处理异常处理如如C+C+,JAVAJAVA语言:语言:1.1.就是在异常发生时,由编程语言提供的某种就是在异常发

4、生时,由编程语言提供的某种机制通知应用程序,让应用程序决定如何进机制通知应用程序,让应用程序决定如何进行下一步的处理。行下一步的处理。传统方式:传统方式:1 1)负责测出错误的发生)负责测出错误的发生 (程序设计者)(程序设计者)2 2)进行错误的处理)进行错误的处理异常处理方式:异常处理方式:2 2)进行错误的处理)进行错误的处理 (程序设计者)(程序设计者)本讲稿第六页,共三十二页2 2 异常处理异常处理2.2.特点:特点:1 1)可将错误处理代码和常规代码隔离开来,)可将错误处理代码和常规代码隔离开来,提高程序的可读性和可维护性;提高程序的可读性和可维护性;2 2)可以处理一组错误,进行

5、集中管理,保证)可以处理一组错误,进行集中管理,保证程序的一致性。程序的一致性。3)3)将异常事件分类,体现了良好的层次性将异常事件分类,体现了良好的层次性。本讲稿第七页,共三十二页1.2 Java1.2 Java的异常处理机制的异常处理机制JavaJava语言用异常为它的程序提供语言用异常为它的程序提供了错误处理方式,为方法的异常终了错误处理方式,为方法的异常终止和出错处理提供了清晰的接口。止和出错处理提供了清晰的接口。异常和异常对象异常和异常对象异常的处理过程异常的处理过程本讲稿第八页,共三十二页1 1 异常和异常对象异常和异常对象异常:在程序执行的时候,所发生会打断程序异常:在程序执行的

6、时候,所发生会打断程序正常流程的事件。正常流程的事件。异常的类型异常的类型错误出现错误出现 产生异常对象产生异常对象 程序的状态信息程序的状态信息 “异常异常”被看作是对象,是继承自类被看作是对象,是继承自类ThrowableThrowable的子类。所有的子类。所有ThrowableThrowable的子类所产的子类所产生的对象实例,都是异常。生的对象实例,都是异常。本讲稿第九页,共三十二页1 1 异常和异常对象异常和异常对象异常类的层次异常类的层次ErrorObjectThrowableExceptionRuntimeExceptionNon_RuntimeException本讲稿第十页,

7、共三十二页1 1 异常和异常对象异常和异常对象运行时运行时异常:运行异常可以不做处理,运行时系统会把生成异常:运行异常可以不做处理,运行时系统会把生成的运行时异常对象交给默认的异常处理程序,在标准输出上的运行时异常对象交给默认的异常处理程序,在标准输出上显示异常的内容及发生异常的位置。显示异常的内容及发生异常的位置。本讲稿第十一页,共三十二页1 1 异常和异常对象异常和异常对象ArithmeticException:除0,用0取模;NullPointException:访问一个空对象中的变量和方法,或一个空数组中的元素;ClassCastException:把对象o强制成Class C,而o既

8、不是C的实例,又不是C的子类的实例;NegativeArraySizeException:数组的长度是负数;ArrayIndexOutOfBoundsException:访问数组中的非法元素。本讲稿第十二页,共三十二页1 1 异常和异常对象异常和异常对象非运行时非运行时异常:非运行异常需要使用异常:非运行异常需要使用try-catch-finallytry-catch-finally语句捕获异常或使用语句捕获异常或使用throwsthrows子句生声明异常。子句生声明异常。本讲稿第十三页,共三十二页1 1 异常和异常对象异常和异常对象IOExceptionFileNotFoundExcepti

9、on:找不到文件;InterruptedIOException;UnknownHostException;UnknownServiceException;SocketException;MalformedURLException;NoSuchMethodExceptionClassNotFoundException本讲稿第十四页,共三十二页2 2 异常的处理过程异常的处理过程抛出异常抛出异常:产生一个异常对象以及把它转交给运行系统产生一个异常对象以及把它转交给运行系统间接抛出(try)直接抛出(throw)捕获异常捕获异常(catch)(catch):找出异常的合适处理方法,即异常指:找出异常

10、的合适处理方法,即异常指针的选择过程针的选择过程处理异常处理异常本讲稿第十五页,共三十二页2 2 异常的处理过程异常的处理过程JavaJava的异常处理机制由的异常处理机制由try/catch/finally try/catch/finally 组成组成try try /可能会产生异常的程序块可能会产生异常的程序块catch(Exception1)catch(Exception1)/异常处理异常处理 catch(Exception2)catch(Exception2)/异常处理异常处理finallyfinally/清除方法状态和关闭文件等语句清除方法状态和关闭文件等语句本讲稿第十六页,共三十二

11、页2 2 异常的处理过程异常的处理过程例例1 1:try try System.in.read();System.in.read();catch(IOException e)catch(IOException e)String err=e.getMessage();String err=e.getMessage();System.out.println(err);System.out.println(err);本讲稿第十七页,共三十二页/BubbleSort1.javapublic class BubbleSort1 public static void main(String args)in

12、t a=new int10;for(int i=0;i 10;i+)ai=(int)(Math.random()*100);for(int i=0;i a.length;i+)System.out.print(ai+);System.out.println();bubbleSort(a);System.out.println(Data items in ascending order);for(int i=0;i 0;pass-)for(int i=0;i b i+2 )swap(b,i,i+1);public static void swap(int c,int first,int seco

13、nd)int hold;hold=c first;c first =c second;c second =hold;本讲稿第十八页,共三十二页本讲稿第十九页,共三十二页/BubbleSort2.javapublic class BubbleSort2 public static void main(String args)int a=new int10;for(int i=0;i 10;i+)ai=(int)(Math.random()*100);for(int i=0;i a.length;i+)System.out.print(ai+);System.out.println();bubbl

14、eSort(a);System.out.println(Data items in ascending order);for(int i=0;i 0;pass-)for(int i=0;i b i+2 )swap(b,i,i+1);catch(ArrayIndexOutOfBoundsException e)System.out.println(出现数组越界异常:出现数组越界异常:+e.getMessage();public static void swap(int c,int first,int second)int hold;hold=c first;c first =c second;c

15、 second =hold;本讲稿第二十页,共三十二页本讲稿第二十一页,共三十二页2 2 异常的处理过程异常的处理过程-声明异常声明异常例例2 2:声明异常:声明异常Protected void myMethod()try doRead();catch(IOException e)System.out.println(e.getMessage();Protected void doRead()throws IOExceptionSystem.in.read();本讲稿第二十二页,共三十二页2 2 异常的处理过程异常的处理过程抛出异常抛出异常例例3:Public static void main

16、(String args)try System.out.pringtln(passingGrade(90,80);catch(Exception e)System.out.println(e.getMessage();Static void passingGrade(int correct,int total)throws Exception if(correcttotal)throw new Exception(“Invalid values”);本讲稿第二十三页,共三十二页2 2 异常的处理过程异常的处理过程ThrowThrow语句会使得一个异常被抛掷,其结果将语句会使得一个异常被抛掷,其

17、结果将导致程序控制的转换,即转向处理异常的导致程序控制的转换,即转向处理异常的catchcatch块。形式:块。形式:throw new Exception(throw new Exception(“描述字符串描述字符串”););ThrowsThrows是将本方法产生的异常不处理,而是是将本方法产生的异常不处理,而是抛给上层调用者。抛给上层调用者。本讲稿第二十四页,共三十二页1.3 1.3 创建自己的异常类创建自己的异常类创建自己的异常类创建自己的异常类继承继承Exception及其子类及其子类,多数情况下为非运行时异常。多数情况下为非运行时异常。如如 class MyException ex

18、tends ExceptionString say()在程序中使用自己的异常类在程序中使用自己的异常类class UseMyException try throw new MyException();catch(MyException e)System.out.println(e.say();本讲稿第二十五页,共三十二页小结小结JAVA异常处理机制及处理过程异常处理机制及处理过程异常处理与程序的结合使用异常处理与程序的结合使用异常,运行时异常,非运行时异常,异常,运行时异常,非运行时异常,Error,try-catch-finally,throw,throws本讲稿第二十六页,共三十二页习题习

19、题1.解释解释JAVA异常处理机制及处理过程异常处理机制及处理过程2.解释异常,运行时异常,非运行时异常解释异常,运行时异常,非运行时异常本讲稿第二十七页,共三十二页3.UsingExceptions.javapublic class UsingExceptions public static void main(String args)try method1();catch(Exception e)System.err.println(e.getMessage()+n);public static void method1()throws Exception method2();public

20、 static void method2()throws Exception method3();public static void method3()throws Exception throw new Exception(Exception thrown in method3);本讲稿第二十八页,共三十二页4.UsingExceptions.javapublic class UsingExceptions public static void main(String args)try throwException();catch(Exception e)System.err.printl

21、n(Exception handled in main);public static void throwException()throws Exception try System.out.println(Method throwException);throw new Exception();catch(RuntimeException e)System.err.println(Exception handled in +method throwException);finally System.err.println(Finally is always executed);本讲稿第二十九

22、页,共三十二页5.UsingExceptionsclass DivideByZeroException extends ArithmeticException public DivideByZeroException()super(Attempted to divide by zero);public DivideByZeroException(String message)super(message);本讲稿第三十页,共三十二页public class ExceptionExample public static void main(String args)try int number1=1

23、;int number2=0;double result=quotient(number1,number2);catch(DivideByZeroException dbze)System.err.println(Attempted to Divide by Zero+dbze.toString();本讲稿第三十一页,共三十二页public double quotient(int number1,int number2)throws DivideByZeroException if(number2=0)throw new DivideByZeroException();else return(double)number1/number2;本讲稿第三十二页,共三十二页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com