Java教材异常处理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Java教材异常处理课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 教材 异常 处理 课件
- 资源描述:
-
1、T1npublic class t1 npublic static void main(String args)nint arr=35,0,5,7,9,-5;nfor(int k=0;karr.length;k=k+2)nSystem.out.println(arrk);nnT1 answern35n5n9T2npublic class t2 npublic static void main(String args)nint arr=35,0,5,6,7,9,-1,-2,-3;nfor(int k=0;karr.length;k+)nfor(int j=0;jarrk.length;j+)nS
2、ystem.out.println(arrk);nnT2 answernI7d772enI7d772enI7d772enI11b86e7nI11b86e7nI11b86e7nI35ce36nI35ce36nI35ce36npublic class T3 nstatic public void swap(int arr,int pos1,int pos2)nnint tmp=arrpos1;narrpos1=arrpos2;narrpos2=tmp;nnstatic void dispaly(int arr)nnfor(int i=0;iarr.length;i+)nSystem.out.pri
3、nt(arri+t);nSystem.out.println();nnpublic static void main(String args)nint a=1,2,3,4,5;nT3.dispaly(a);nT3.swap(a,1,2);nT3.dispaly(a);nnn1 2 3 4 5n1 3 2 4 5教学目的要求n1.1.理解异常概念,理解理解异常概念,理解Java Java 中抛弃异常中抛弃异常和声明抛弃异常的区别与联系;和声明抛弃异常的区别与联系;n2.2.掌握掌握JavaJava的异常处理机制,学会如何的异常处理机制,学会如何合理应用异常处理机制;合理应用异常处理机制;n3.3
4、.会使用捕获异常和声明抛弃异常的两会使用捕获异常和声明抛弃异常的两种异常处理的方法。种异常处理的方法。第第4讲讲 异常(异常(Exception)处理)处理1 异常的概念异常的概念2 异常处理异常处理3 自定义异常处理类自定义异常处理类4 应用举例应用举例本章内容1.异常的概念异常的概念 Java中将运行错误分为两类:错误和异常。中将运行错误分为两类:错误和异常。致命性错误致命性错误:如程序进入死循环,或递归无法结:如程序进入死循环,或递归无法结束,或内存溢出,这类现象称为错误。错误只能在编束,或内存溢出,这类现象称为错误。错误只能在编程阶段解决,只能依靠其他程序干预,否则会一直处程阶段解决,
5、只能依靠其他程序干预,否则会一直处于非正常状态。于非正常状态。非致命性的异常非致命性的异常:如运算时除数为:如运算时除数为0,或操作数,或操作数超出范围,或打开一个文件时发现文件并不存在,或超出范围,或打开一个文件时发现文件并不存在,或欲装入的类文件丢失,或网络连接中断等,这类现象欲装入的类文件丢失,或网络连接中断等,这类现象称为异常。称为异常。n 没有错误处理的程序没有错误处理的程序:openTheFile;openTheFile;determine its size;determine its size;allocate that much memory;allocate that muc
6、h memory;read-file read-file closeTheFile;closeTheFile;1 异常的概念异常的概念1 异常的概念异常的概念 在在C/C+语言中,通过使用语言中,通过使用if语句来判断是否出现了错语句来判断是否出现了错误,误,同时,调用函数通过被调用函数的返回值感知在被调用同时,调用函数通过被调用函数的返回值感知在被调用函数中产生的错误事件并进行处理。但是,这种错误处理机函数中产生的错误事件并进行处理。但是,这种错误处理机制会导致不少问题,因为在很多情况下需要知道错误产生的制会导致不少问题,因为在很多情况下需要知道错误产生的内部细节。内部细节。通常,用某个全局
7、变量来存储一个异常事件的类型通常,用某个全局变量来存储一个异常事件的类型,这容,这容易导致误用,因为该全局变量的值有可能在被处理前被另外易导致误用,因为该全局变量的值有可能在被处理前被另外的错误覆盖掉。此外,即使最优美的的错误覆盖掉。此外,即使最优美的C语言程序,为了处理语言程序,为了处理异常情况,也常常求助于异常情况,也常常求助于goto语句。语句。1 异常的概念异常的概念n 以常规方法处理错误:以常规方法处理错误:openFiles;if(theFilesOpen)determine the length of the file;if(gotTheFileLength)allocate t
8、hat much memory;if(gotEnoughMemory)read the file into memory;if(readFailed)errorCode=-1;else errorCode=-2;else errorCode=-3;else errorCode=-4;else errorCode=-5;用常规方法处理错误存在的主要问题有:用常规方法处理错误存在的主要问题有:n部分精力花在错误处理上;部分精力花在错误处理上;n只处理能够想到的错误,对未知的情况无法只处理能够想到的错误,对未知的情况无法处理;处理;n程序可读性差,大量的错误处理代码混杂在程序可读性差,大量的错误处理
9、代码混杂在程序中;程序中;n出错返回信息量太少,无法更确切地了解错出错返回信息量太少,无法更确切地了解错误状况或原因。误状况或原因。1 异常的概念异常的概念1 异常的概念异常的概念 Java通过面向对象的方法来处理程序中的非严重错误,通过面向对象的方法来处理程序中的非严重错误,在在Java中,中,非严重非严重错误被称为异常(错误被称为异常(Exception)。)。在一个方法的运行过程中,如果发生了异常,则这个方在一个方法的运行过程中,如果发生了异常,则这个方法(或者是法(或者是Java虚拟机)生成一个代表该异常的对象(包含虚拟机)生成一个代表该异常的对象(包含了该异常的详细信息),并把它交给
10、运行时系统,运行时系了该异常的详细信息),并把它交给运行时系统,运行时系统寻找相应的代码来处理这一异常。我们把生成异常对象并统寻找相应的代码来处理这一异常。我们把生成异常对象并把它提交给运行时系统的过程称为抛弃把它提交给运行时系统的过程称为抛弃(throw)一个异常。一个异常。运行时系统在方法的调用栈中查找,从生成异常的方法运行时系统在方法的调用栈中查找,从生成异常的方法开始进行回朔,直到找到包含相应异常处理的方法为止,这开始进行回朔,直到找到包含相应异常处理的方法为止,这一个过程称为捕获一个过程称为捕获(catch)一个异常。一个异常。1 异常的概念异常的概念n 用异常的形式处理错误:用异常
11、的形式处理错误:trytry openTheFile;openTheFile;determine its size;determine its size;allocate that much memory;allocate that much memory;read-File;read-File;closeTheFile closeTheFile;catchcatch(fileopenFailed)(fileopenFailed)dosomething;dosomething;catchcatch(sizeDetermineFailed)(sizeDetermineFailed)dosomet
12、hing;dosomething;catchcatch(memoryAllocateFailed)(memoryAllocateFailed)dosomething;dosomething;catchcatch(readFailed)(readFailed)dosomething;dosomething;catchcatch(fileCloseFailed)(fileCloseFailed)dosomething;dosomething;finallyfinally dosomething;dosomething;2 异常处理异常处理 6.2.1 Java中的中的Throwable类类 Jav
13、aJava中的所有异常都是由中的所有异常都是由ThrowableThrowable类的子类生成的对象,类的子类生成的对象,所有的异常类都是所有的异常类都是ThrowableThrowable类的子类或子类的子类。下图给类的子类或子类的子类。下图给出了部分出了部分JavaJava中部分错误类、异常类的继承关系。中部分错误类、异常类的继承关系。ThrowableErrorExceptionAWTErrorLinkageErrorVirtualMachineErrorRuntimeExceptionArithmeticExceptionIndexOutOfBoundsExceptionIndexOu
14、tOfBoundsExceptionAWTExceptionIOExceptionFileNotFoundExceptionEOFExceptionn根据程序对错误与异常的处理方式,可以将根据程序对错误与异常的处理方式,可以将JavaJava中的异常分为中的异常分为两类:两类:nError:是一些严重的程序不能处理的系统错误类是一些严重的程序不能处理的系统错误类,包括,包括内存内存溢出、溢出、动态链接失败、虚拟机错误等动态链接失败、虚拟机错误等,Java程序不做处理。程序不做处理。n Exception:一般程序中可预知的问题,其产生的异常可能会一般程序中可预知的问题,其产生的异常可能会带来意
15、想不到的结果带来意想不到的结果,因此,因此Java编译器要求编译器要求Java程序必须捕获程序必须捕获或声明所有的非运行时异常。或声明所有的非运行时异常。2 异常处理异常处理2 异常处理异常处理ThrowableErrorExceptionExceptionRuntimeException缺省的异常缺省的异常处理程序处理程序由用户捕获或由用户捕获或声明并处理声明并处理不做处理不做处理用户自己产生的异常用户自己产生的异常处理处理2 异常处理异常处理一些常用的异常类一些常用的异常类nError(all in java.lang)nLinkageErrornThreadDeathnVirtualMa
16、chineErrornInternalErrornOutOfMemoryErrornStackOverflowErrornUnknownErrornAWTError(in java.awt)nnException(in java.lang)nClassNotFoundExceptionnCloneNotSupportedExceptionnInterruptedExceptionnnRuntimeExceptionnArithmeticExceptionnClassCastExceptionnInllegalArgumentExceptionnInllegalThreadStateExcept
17、ionnNumberFormatException2 异常处理异常处理一些常用的异常类一些常用的异常类nRuntimeExceptionnInllegalMonitorStateExceptionnInllegalStateExceptionnIndexOutOfBoundsExceptionnArrayIndexOutObBoundsExceptionnStringIndexOutObBoundsExceptionnNegativeArraySizeExceptionnNullPointerExceptionnSecurityExceptionnnEmptyStackException(in
18、 java.util)nMissingResourceException(in java.util)nNoSuchElementException(in java.util)n2 异常处理异常处理一些常用的异常类一些常用的异常类nExceptionnIOException(in java.io)nCharConversionExceptionnEOFExceptionnFileNotFoundExceptionnInterruptedIOExceptionnStreamCorruptedExceptionnJ.MalformedURLExceptionn2 异常处理异常处理一些常用的异常类一些
19、常用的异常类n 异常示例:异常示例:(1)编译时异常:在程序中必须对其进行处理,)编译时异常:在程序中必须对其进行处理,否则编译器会指出错误。否则编译器会指出错误。在使用能够产生异常的方法而没有捕获和处理,程序在使用能够产生异常的方法而没有捕获和处理,程序将不能通过编译。将不能通过编译。(2)运行时异常:程序中可以不做处理,直接由)运行时异常:程序中可以不做处理,直接由运行时系统来处理。运行时系统来处理。2 异常处理异常处理try-catch-finally语句语句 Java的异常处理是通过的异常处理是通过3个关键词来实现的:个关键词来实现的:try-catch-finally。用。用try来
20、监视执行一段程序,如果来监视执行一段程序,如果出现异常,系统就会抛出(出现异常,系统就会抛出(throws)异常,可以通)异常,可以通过异常的类型来捕捉(过异常的类型来捕捉(catch)并处理它,或最后)并处理它,或最后(finally)由缺省处理方法来处理。)由缺省处理方法来处理。2 异常处理异常处理-捕获异常捕获异常ntry代码段包含可能产生异常的代码代码段包含可能产生异常的代码ntry代码段后跟有一个或多个代码段后跟有一个或多个catch代代码段码段n每个每个catch代码段声明其能处理的一种代码段声明其能处理的一种特定类型的异常特定类型的异常n每个每个catch代码段都是一段异常处理代
21、代码段都是一段异常处理代码码n程序继续执行最后一个程序继续执行最后一个catch代码段后代码段后的代码的代码(或执行完或执行完finally代码段后代码段后)n不同的代码段是不同的作用域,不可不同的代码段是不同的作用域,不可访问相互之间定义的局部变量访问相互之间定义的局部变量trytry /接受监视的程序块接受监视的程序块,在此区域内发生在此区域内发生 /的异常的异常,由由catchcatch中指定的程序处理中指定的程序处理;/不能有其它语句分隔catchcatch(要处理的异常种类和标识符要处理的异常种类和标识符)/处理异常处理异常;catchcatch(要处理的异常种类和标识符要处理的异常
22、种类和标识符)/处理异常处理异常;finallyfinally /最终处理(缺省处理)最终处理(缺省处理);/Other Statements/Other Statements2 异常处理异常处理-捕获异常捕获异常2 异常处理异常处理-捕获异常捕获异常 try语句语句 捕获异常的第一步就是用捕获异常的第一步就是用try 语句指定了语句指定了一段代码,该段代码就是一次捕获并处理异常的范一段代码,该段代码就是一次捕获并处理异常的范围。在执行过程中,该段代码可能会产生并抛弃一围。在执行过程中,该段代码可能会产生并抛弃一个或多个异常,因此,它后面的个或多个异常,因此,它后面的catch语句进行捕获语句
23、进行捕获时也要做相应的处理。时也要做相应的处理。如果没有异常产生,所有的如果没有异常产生,所有的catch代码段都被代码段都被略过不执行。略过不执行。2 异常处理异常处理-捕获异常捕获异常 catch语句语句 每个每个try语句必须伴随一个或多个语句必须伴随一个或多个catch语句,用于捕获语句,用于捕获try代码块所产生的异常并做相应的处理。代码块所产生的异常并做相应的处理。catch语句有一个语句有一个形式参数,用于指明其所能捕获得异常类型,运行时系统通形式参数,用于指明其所能捕获得异常类型,运行时系统通过参数值把被抛弃的异常对象传递给过参数值把被抛弃的异常对象传递给catch语句。语句。
展开阅读全文