如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Java语言编程技术Chapter6:ErrorHandlingwithExceptions主要内容什么是exceptionexception的捕获和处理exceptin的分类自定义exceptionJava语言编程技术2什么是exception?dividebyzero试图打开的文件不存在网络连接被中断操作数组越界正在装载的类丢失时;…………Java语言编程技术3出现exception怎么办?创建并抛出一个exception对象中断正常执行由exceptionhandler处理exceptiontry{//Codethatmightgenerateexceptionsif(t==null)thrownewNullPointerException();}catch(…){…}Java语言编程技术4exception的捕获和处理try{//Codethatmightgenerateexceptions}catch((pExceptionTypyp){e1eid1){将正常//HandleexceptionsofType1处理与}catch(ExceptionType2eid2){错误处//HandleexceptionsofType2理分开}finally{//……}Java语言编程技术5exception分类Java语言编程技术6exception分类RuntimeExceptionArithmeticExceptionNullPointerExceptionClassCastExceptionNegativeArraySizeExceptionIndexOutOfBoundsExceptionJava语言编程技术7exception分类非RuntimeException——必须处理ClassNotFoundExceptionCloneNotSupportedExceptionInterruptedExceptionIOException……Java语言编程技术8自定义exception从已有定义的exception类继承,一般继承承ExceptionException类类例:c10:SimpppleExceptionDemo.java例:c10:FullConstructors.java带参数的构造方法例:ExtraFeatures.javaJava语言编程技术9exception说明voidf()throwsTooBig,TooSmall,DivZero{...…//可能有Exception}方法声明时必须指明可能产生的Exception,,否则编译错误否则编译错误声明产生Exception,也可以不产生Exception——子类可能产生Java语言编程技术10Throwable方法toString()getMessage()getLocalizedMessage()printStackTrace()printStackTrace(PrintStreams)printStackTrace(PrintWriters)fillInStackTrace()例:c10:ExceptionMethods.javaJava语言编程技术11Rethrowinggpanexceptioncatch(Exceptione){System.err.println("Anexceptionwasthrown");throwe;}fillInStackTrace()更新信息publicThrowablefillInStackTrace()例:c10:Rethrowing.javaJava语言编程技术12finally无论是否有exception都要执行例:c10:FinallyWorks.javac10:OnOffSwitch.javac10:WithFinally.java缺陷:finally中抛出的exception未被捕获例:c10:LostMessage.javaJava语言编程技术13方法重写与exception子类重写父类方法时,只能抛出父类方法所抛出的exception或其子类父类方法throwIOException子类方法throwFileNotFoundExceptionthrowException子类方法可以抛出部