Java异常58623

上传人:豆浆 文档编号:2663977 上传时间:2017-07-26 格式:PPT 页数:20 大小:182.50KB
返回 下载 相关 举报
Java异常58623_第1页
第1页 / 共20页
Java异常58623_第2页
第2页 / 共20页
Java异常58623_第3页
第3页 / 共20页
Java异常58623_第4页
第4页 / 共20页
Java异常58623_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Java异常58623》由会员分享,可在线阅读,更多相关《Java异常58623(20页珍藏版)》请在金锄头文库上搜索。

1、第十一课 Java异常,异常与异常类,异常(Exception)也称例外,是特殊的运行错误对象,对应JAVA语言特定的运行错误处理机制。JAVA中的每个异常类都代表一中运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。JAVA中的异常,都是异常类的一个对象。,异常类Exception,JAVA异常类都是系统类库中Exception类的子类。 Exception类是java.lang.Throwable类的一个子类,构造函数为:public Exception();public Exception(String s);它从Throwable类那里继承了若干方法。常用的为:public

2、String toString():返回异常类信息public void printStackTrace():在当前标准输出上输出当前例外对象的堆栈使用轨迹。,系统定义的运行异常,基本异常介绍,算术异常 ArithmeticException空指针异常 NullPointerException数组越界异常ArrayIndexOutofBoundsException,其他异常,AccessControlExceptionLoginExceptionRemoteException This exception is thrown by the RMI runtime when activation

3、 fails during a remote call to an activatable object. AclNotFoundException Acl 访问空之列表,用户自定义的异常,声明一个新的异常类,扩展Exception类或其他某个已经存在的系统异常类或其他用户异常类; 为新的异常类定义属性和方法,或重载父类的属性的和方法,使这些属性和方法能够体现该类所对应的错误的信息。,异常的抛出,Java应用程序在运行时如果出现了一个可识别的错误,就会产生一个与该错误相对应的异常类的对象,这个对象包含了异常的类型和错误出现时程序所处的状态信息,这个异常对象首先被交给Java虚拟机,由虚拟机来寻

4、找具体的异常处理者。在Java中把产生异常对象并将其交给Java虚机的过程称为称为异常的抛出。,系统自动抛出的异常,所有的系统定义的运行异常都可以由系统自动抛出。例如以非法的算术操作引发的算术异常,这时系统抛出已定义好了的异常类ArithmeticException的对象。,语句抛出的异常,语句抛出的异常是借助throw语句定义何种情况是产生了此种异常对应的错误。 用户程序自定义的异常不可能依靠系统自动抛出,必须使用throw语句抛出这个异常类的新对象。系统定义的运行异常也可以由throw语句抛出。,throw语句抛出例外 的语法,修饰符 返回类型 方法名(参数表) throws 异常类名表t

5、hrow 异常类名;,异常的处理,异常的处理主要包括捕捉异常、程序流程的跳转和异常处理语句块的定义等。当一个异常被抛出时,应该有专门的语句来捕获这个被抛出的异常对象,这个过程被称为捕捉异常。当一个异常类的对象被捕捉可接收后,用户程序就会发流程的跳转,系统中止当前的流程而跳转至专门的异常自理语句块,或直接跳出当前程序和Java虚拟机回到操作系统。,try/catch语句,在Java程序里,异常对象是依靠try/catch语句来捕捉和处理的。try/catch异常处理语句块分为try语句块和catch语句块,其格式如下:try /try语句块,可能产生异常情况catch /catch语句块,对异常

6、进行处理一般将可能产生的异常情况的语句放在try 块中,这个try语句块用来启动Java的异常处理机制。凡是可能抛出异常的语句,包括throw语句、可能抛出异常的方法的调用语句,都应该包含在这个try语句块中。然后在catch块对异常进行处理。Java语言还规定,每个catch语句块都应该与一个try语句块相对应。,异常对象将被接收的条件,当前异常对象满足下面三个条件的任何一个时,异常对象将被相应的catch所接收: 异常对象与参数属于相同类型的例外类; 异常对象属于参数例外类的子类; 参数是一个接口,异常对象实现了参数所定义的接口。,多异常的捕获和处理,多异常处理是通过在一个try块后面定义

7、若干个catch块来实现的,每个catch块用来接收和处理一种特定的异常对象 。,设计catch块处理,在设计catch块处理不同的异常时,一般应注意如下问题: (1) catch块中的语句应根据异常的不同而采取不同的处理方法,比较通用的操作是打印异常和与该异常相关的信息,包括异常名称和产生异常的方法名等。 (2) 由于异常对象与catch块的匹配是按照catch块的先后排列顺序进行的,所以要处理多异常时应注意认真设计各catch块的排列顺序。一般地,处理较具体和较常见的异常的catch块应放在前面,而可与多种异常相匹配的catch块应放在较后的位置。,finally子句,finally语句只

8、用来控制从trycatch语句转移到另一部分前的一些必要的善后工作,这些工作包含了关闭文件或释放其他有关系统资源。finally语句执行的是一种强制的无条件执行,即无论在程序中是否出现异常,也不管出现的是哪一种异常,即使try代码块中包含有break、continue、return或者throw语句,都必须执行finally块中所包含的语句。在出现和未出现异常的情况下都要执行的代码,可以放到finally子句中。,finally子句,finally语句紧接着try - catch结构中的最后一个catch块,其形式如下所示:try catch(Exception1 e1) catch(Exce

9、ption2 e2) finally ,实践: 执行下面程序,补充异常,Public void myMethod(int num1,int num2) int result; result = num1/num2 System.out.println(“Result:”+result); Public static void main(String args) /myMethod(200,50); /myMethod(10,0); /调用myMethod函数,实践: 执行下面程序,补充异常,Public static void main(String arg) int array=0,0; int num1,num2,result=0; num1=100; num2=0; result=num1/num2; result=num1/array2; ,

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

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号