收藏 分享(赏)

第七章 异常处理(基础篇).ppt

上传人:scg750829 文档编号:9504849 上传时间:2019-08-11 格式:PPT 页数:32 大小:135KB
下载 相关 举报
第七章 异常处理(基础篇).ppt_第1页
第1页 / 共32页
第七章 异常处理(基础篇).ppt_第2页
第2页 / 共32页
第七章 异常处理(基础篇).ppt_第3页
第3页 / 共32页
第七章 异常处理(基础篇).ppt_第4页
第4页 / 共32页
第七章 异常处理(基础篇).ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、第七章 异常处理,1.1 错误处理的方法概述 1.2 Java的异常处理机制 1.3 创建自己的异常类,1.1 错误处理的方法概述,传统的程序运行时错误处理 异常处理,1 传统的程序运行时错误处理,如C语言: 函数返回值=某个可能会执行失败的函数();if(函数返回值=表示该函数执行成功的值)正常代码else if(函数返回值=代表错误情况1的值)处理错误情形1else if(函数返回值=代表错误情况2的值)处理错误情形2,1 传统的程序运行时错误处理,函数返回值=某个可能会执行失败的函数(); if(函数返回值!=表示该函数执行成功的值) Switch(函数返回值)case 错误情况1的值:

2、处理错误情形1case 错误情况2的值:处理错误情形2 else正常代码,1 传统的程序运行时错误处理,缺点: 1)整个程序代码穿插错误处理代码,使得条理性和可读性差; 2)对错误处理程序难以集中管理,难以保证程序的一致性; 3)对于返回值的意义,要借助于文档,程序维护困难。,2 异常处理,如C+,JAVA语言: 就是在异常发生时,由编程语言提供的某种机制通知应用程序,让应用程序决定如何进行下一步的处理。传统方式: 1)负责测出错误的发生(程序设计者) 2)进行错误的处理异常处理方式:2)进行错误的处理(程序设计者),2 异常处理,特点:1)可将错误处理代码和常规代码隔离开来,提高程序的可读性

3、和可维护性;2)可以处理一组错误,进行集中管理,保证程序的一致性。3) 将异常事件分类,体现了良好的层次性。,1.2 Java的异常处理机制,Java语言用异常为它的程序提供了错误处理方式,为方法的异常终止和出错处理提供了清晰的接口。 异常和异常对象 异常的处理过程,1 异常和异常对象,异常:在程序执行的时候,所发生会打断程序正常流程的事件。 异常的类型错误出现 产生异常对象 程序的状态信息“异常”被看作是对象,是继承自类Throwable的子类。所有Throwable的子类所产生的对象实例,都是异常。,1 异常和异常对象,异常类的层次,Error,Object,Throwable,Excep

4、tion,RuntimeException,Non_RuntimeException,1 异常和异常对象,运行时异常:运行异常可以不做处理,运行时系统会把生成的运行时异常对象交给默认的异常处理程序,在标准输出上显示异常的内容及发生异常的位置。,1 异常和异常对象,ArithmeticException:除0,用0取模; NullPointException:访问一个空对象中的变量和方法,或一个空数组中的元素; ClassCastException:把对象o强制成Class C,而o既不是C的实例,又不是C的子类的实例; NegativeArraySizeException:数组的长度是负数;

5、ArrayIndexOutOfBoundsException:访问数组中的非法元素。,1 异常和异常对象,非运行时异常:非运行异常需要使用try-catch-finally语句捕获异常或使用throws子句生声明异常。,1 异常和异常对象,IOException FileNotFoundException:找不到文件; InterruptedIOException; UnknownHostException; UnknownServiceException; SocketException; MalformedURLException; NoSuchMethodException ClassN

6、otFoundException,2 异常的处理过程,抛出异常:产生一个异常对象以及把它转交给运行系统 间接抛出(try) 直接抛出(throw) 捕获异常(catch):找出异常的合适处理方法,即异常指针的选择过程 处理异常,2 异常的处理过程,Java的异常处理机制由try / catch / finally 组成 try /可能会产生异常的程序块 catch(Exception1)/异常处理 catch(Exception2)/异常处理 finally/清除方法状态和关闭文件等语句 ,2 异常的处理过程,例1: try System.in.read(); catch(IOExceptio

7、n e)String err = e.getMessage();System.out.println(err); ,/ BubbleSort1.java public class BubbleSort1public static void main(String args) int a = new int10;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 second )int hold; hol

8、d = c first ; c first = c second ; c second = hold; ,/ BubbleSort2.java public class BubbleSort2public static void main(String args) int a = new int10;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.g

9、etMessage(); public static void swap( int c, int first, int second )int hold; hold = c first ; c first = c second ; c second = hold; ,2 异常的处理过程-声明异常,例2:声明异常 Protected void myMethod() try doRead(); catch(IOException e)System.out.println(e.getMessage(); Protected void doRead() throws IOExceptionSystem

10、.in.read(); ,2 异常的处理过程抛出异常,例3: Public static void main(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 异常的处理过程,Thr

11、ow语句会使得一个异常被抛掷,其结果将导致程序控制的转换,即转向处理异常的catch块。形式:throw new Exception(“描述字符串”); Throws是将本方法产生的异常不处理,而是抛给上层调用者。,1.3 创建自己的异常类,创建自己的异常类继承Exception及其子类,多数情况下为非运行时异常。如 class MyException extends Exception String say() 在程序中使用自己的异常类class UseMyException try throw new MyException();catch(MyException e)System.out

12、.println(e.say(); ,小结,JAVA异常处理机制及处理过程 异常处理与程序的结合使用 异常,运行时异常,非运行时异常, Error,try-catch-finally,throw,throws,习题,解释JAVA异常处理机制及处理过程 解释异常,运行时异常,非运行时异常,UsingExceptions.java,public class UsingExceptions public static void main( String args ) try method1(); catch ( Exception e ) System.err.println( e.getMessa

13、ge() + “n“ ); public static void method1() throws Exception method2(); public static void method2() throws Exception method3(); public static void method3() throws Exception throw new Exception( “Exception thrown in method3“ ); ,UsingExceptions.java,public class UsingExceptions public static void ma

14、in( String args )try throwException(); catch ( Exception e ) System.err.println( “Exception handled in main“ ); public static void throwException() throws Exceptiontry System.out.println( “Method throwException“ );throw new Exception(); catch( RuntimeException e ) System.err.println( “Exception hand

15、led in “ +“method throwException“ ); finally System.err.println( “Finally is always executed“ ); ,UsingExceptions,class DivideByZeroExceptionextends ArithmeticException public DivideByZeroException()super( “Attempted to divide by zero“ );public DivideByZeroException( String message )super( message )

16、; ,public class ExceptionExample public static void main( String args ) try int number1 =1;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; ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报