资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,面向对象程序设计与系统开发,第,5,章 异常处理,2,驱动,任务,一,实现自定义异常类,MyArrayException,,从键盘输入一个,int,类型的数,size,,当,size,大于零时,则创建一个长度为,size,的存放整数的数组,array,;当,size,小于或等于零时,提示“数组创建错误,请检查下标!”。,3,目标及知识点,抛出及捕获异常对象,2,自定义异常类,3,异常类的使用,1,1,4,Java,异常处理机制,程序在运行过程中产生异常将会中断程序的正常执行,如果这些异常不能被处理那么将影响程序的运行,异常在软件中是必然存在的,处理异常是程序员在开发时相当大的一项工作。,Java,提供了异常处理机制使我们的异常处理变得更加规范和容易。,6,Java,中的异常类,把各种不同类型的异常情况进行分类,用,Java,类来表示异常情况,这种类被称为异常类。异常主要有以下几类:,Error,:由,Java,虚拟机生成并抛出,,Java,程序不能做处理。,Exception,:由程序处理的异常,分为运行时异常(,Runtime Exception,)和非运行时异常,(None Runtime Exception),。运行时异常就是编译器编译的时候发现不了,只有在运行的时候才报错的异常;而非运行时异常则是指编译的时候就能发现的异常。,Java,面向对象软件开发,7,常见的,Exception,异常:,算术异常,ArithmeticException,空指针异常,NullPointerException,类型强制转换异常,ClassCastException,数组负下标异常,NegativeArraySizeException,数组下标越界异常,ArrayIndexOutOfBoundsException,Java,面向对象软件开发,8,异常处理方式,异常处理的方法有两种:一种是通过,trycatchfinally,结构对异常捕获和处理,另一种是用,throws,和,throw,抛出异常,10,【,例,5-1】,处理除数为,0,的异常。,public class Demo,public static void main(String args),int m,n;,try/,这里面是可能出现异常的代码,m=5;,n=0;,int c=m/n;,System.out.println(m+/+n+=+c);,catch(ArithmeticException e)/,捕获算术异常,System.out.println(,除零错误,!);,catch(Exception e)/,捕获所有异常,System.out.println(,其他错误,);,System.out.println(After try-catch.);,执行结果:,除零错误,!,After try-catch,.,11,异常处理方式一,finally,子句,inally,语句定义了一个总是被执行的代码块,而不管有没有出现异常。,try,.,catch(ExceptionType1 ExceptionObject),.,catch(ExceptionType2 ExceptionObject),.,finally,./(,统一的出口,最终必定要执行,),13,异常处理方式二,要使用,throw,语句抛出异常,我们还必须在使用这个语句的方法头使用,thows,子句,使虚拟机知道,这个方法中的异常要抛出,不当场处理。,public double divided()throws XXXException,/,抛出异常的类型要具体情况下确定。,/,若程序代码中出现异常,那么程序将异常抛给方法的调用者来处理异常,15,自定义异常,自定义异常类对象同系统提供的异常类对象一样可以抛出和捕获,public class MyExceptionDemo,public static void main(String args),try,throw new MyException(“,抛出自定义异常,MyException!”);/,抛出,自定义异常,catch(MyException e)/,捕获自定义异常,String ss=e.getstr();/,调用自定义异常对象的方法,System.out.println(My exception message:+ss);,执行结果:,My exception message:,抛出自定义异常,MyException!,16,任务实现,1,2,3,创建自定义异常类结构,添加异常信息作为属性和获取异常信息的方法,实现获取异常信息方法,
展开阅读全文