java异常处理PPT演示课件(PPT 42页).pptx

上传人(卖家):三亚风情 文档编号:3151262 上传时间:2022-07-22 格式:PPTX 页数:42 大小:740.96KB
下载 相关 举报
java异常处理PPT演示课件(PPT 42页).pptx_第1页
第1页 / 共42页
java异常处理PPT演示课件(PPT 42页).pptx_第2页
第2页 / 共42页
java异常处理PPT演示课件(PPT 42页).pptx_第3页
第3页 / 共42页
java异常处理PPT演示课件(PPT 42页).pptx_第4页
第4页 / 共42页
java异常处理PPT演示课件(PPT 42页).pptx_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、1第1页,共42页。1 什么是异常什么是异常2 异常处理机制异常处理机制3 异常的处理异常的处理4 创建用户异常类创建用户异常类http:/ 什么是异常什么是异常2 异常处理机制异常处理机制3 异常的处理异常的处理4 创建用户异常类创建用户异常类http:/ Java 程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。这个对象可能是由正在运行的方法生成,也可能由Java虚拟机生成,其中包含一些信息指明异常事件的类型以及当异常发生时程序的运行状态等。Java语言提供两种处理异常的机制:(1)捕获异常 在Java程序运行过程中系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处

2、理这一异常的代码。找到能够处理这种类型异常的方法后,运行时系统把当前异常对象交给这个方法进行处理,这一过程称为捕获(catch)异常。这是一种积极的异常处理机制。如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。(2)声明抛弃异常 当Java程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃(throws)异常。http:/ strName=new string(“123”);int nNumber=(int)strName;(2)数组超界异常ArrayIndexOutBoundsExceptio

3、nint b=new int10;b10=1000;(3)指定数组维数为负值异常NegativeArraySizeExceptionb-1=1001;(4)算术异常ArithmeticExceptionint b=0;a=500/b;(5)Java系统内部异常InternalExceptionJVM抛出的异常。(6)类型不符合异常IncompatibleTypeExceptionint n=12345;String s=(String)n;(7)内存溢出异常OutOfMemeoryException(8)没有找到类定义异常NoClassDefFoundExceptionaClass aa=ne

4、w aClas();/但aClass类未定义。(9)空指针异常 NullPointerExceptionint b;b0=99;/没有实例化,就访问,将产生空指针。http:/ clone 方法但无法执行 Cloneable 所产生的异常。(3)IllegalAccessException:类定义不明确所产生的异常。例如:类不为 public,或是包含一个类定义在另一个类库内。(4)IOException:在一般情况下不能完成I/O操作所产生的异常。(5)EOFException:打开文件没有数据可以读取所产生的异常(6)FileNotFoundException:在文件系统中,找不到文件名称

5、或路径所产生(7)InterruptedIOException:目前线程等待执行,另一线程中断目前线程I/O运行所产生的异常 在Sun公司提供的各种API包中,如java.io,java.awt等,都提供不同情况下可能产生的异常。由于异常的种类非常多,需要读者实际运用中逐渐掌握。http:/ native Throwable fillInStackTrace()填写执行堆栈跟踪信息。该方法在应用程序重新抛出错误或异常时有用。例如:try a=b/c;catch(ArithmeticThrowable e)a=Number.MAX_VALUE;throw e.fillInStackTrace()

6、;(2)public String getLocalizedMessage()生成该 Throwable 的本地化描述。子类可能会覆盖该方法以便产生一个特定于本地的消息。对于未覆盖该方法的子类,缺省地返回调用 getMessage()的结果。http:/ String getMessage()返回该 throwable 对象的详细信息。如果该对象没有详细信息则返回null。(4)public void printStackTrace()把该 Throwable 和它的跟踪情况打印到标准错误流。(5)public void printStackTrace(PrintStream s)把该 Thr

7、owable 和它的跟踪情况打印到指定打印流。(6)public void printStackTrace(PrintWriter s)把该 Throwable 和它的跟踪情况打印到指定打印流。(7)public String toString()返回该 throwable 对象的简短字符串描述。http:/ 什么是异常什么是异常2 异常处理机制异常处理机制3 异常的处理异常的处理4 创建用户异常类创建用户异常类http:/ .catch(ExceptionName1 e).catch(ExceptionName2 e).finally.1、try捕获异常的第一步是用try选定捕获异常的范围,

8、由try所限定的代码块中的语句在执行过程中可能会生成异常对象并抛弃。http:/ e)System.out.println(e);System.out.println(message:+e.getMessage();e.printStackTrace(System.out);catch(IOException e)System.out.println(e);http:/ 语句的顺序语句的顺序捕获异常的顺序和catch语句的顺序有关,当捕获到一个异常时,剩下的catch语句就不再进行匹配。因此,在安排catch语句的顺序时,首先应该捕获最特殊的异常,然后再逐渐一般化。也就是一般先安排子类,再安排

9、父类。例如上面的程序如果安排成如下的形式:try.catch(IOException e)System.out.println(e);System.out.println(message:+e.getMessage();e.printStackTrace(System.out);catch(FileNotFoundException e)System.out.println(e);由于第一个catch语句首先得到匹配,第二个catch语句将不会被执行。编译时将出现“catch not reached”的错误。http:/ finally语句。如果存在finally语句,不论try块中是否发生了

10、异常,是否执行过catch 语句,都要执行finally语句。另外,try-catch-finally可以嵌套。http:/ int read()throws IOException throws子句中同时可以指明多个异常,之间由逗号隔开。例如:public static void main(String args)throws IOException,IndexOutOfBoundsException 最后,我们再次强调,对于非运行时例外,如前例中的IOException等,程序中必须要作出处理,或者捕获,或者声明抛弃。而对于运行时例外,如前例中的ArithmeticException,In

11、dexOutOfBoundsException,则可以不做处理。http:/ java.io.*;public class Exception4public static void main(String args)throws FileNotFoundException,IOException FileInputStream fis=new FileInputStream(“text.txt”);int b;while(b=fis.read()!=-1)System.out.print(b);fis.close();http:/ java.io.*;public class Exceptio

12、n5public static void main(String args)try FileInputStream fis=new FileInputStream(“text.txt”);int b;while(b=fis.read()!=-1)System.out.print(b);fis.close();catch(FileNotFoundException e)System.out.println(e);System.out.println(message:+e.getMessage();e.printStackTrace(System.out);catch(IOException e)

13、System.out.println(e);http:/ e=new IOException();throw e;可以抛出的异常必须是Throwable或其子类的实例。下面的语句在编译时将会产生语法错误:throw new String(throw anything);自定义异常类必须是Throwable的直接或间接子类。http:/ Exception6Caught ExceptiongetMessage():My ExceptiongetLocalizedMessage():My ExceptiontoString():java.lang.Exception:My Exceptionpri

14、ntStackTrace():java.lang.Exception:My Exceptionat Exception6.main(Exception6.java:5)http:/ MyoneException extends Exception public class TryInbed public static void main(String args)System.out.println(Entering first try block);try System.out.println(Entering second try block);try throw new MyoneExce

15、ption();finally System.out.println(finally in 2nd try block);/try-catch-finally嵌套在嵌套在try限定的范围内限定的范围内。catch(MyoneException e)System.err.println(Caught MyoneException in 1st try block);finally System.err.println(finally in 1st try block);http:/ first try blockEntering second try blockfinally in 2nd tr

16、y blockCaught MyoneException in 1st try blockfinally in 1st try blockhttp:/ 什么是异常什么是异常2 异常处理机制异常处理机制3 异常的处理异常的处理4 创建用户异常类创建用户异常类http:/ Java 提供的系统异常类型不能满足程序设计的需求,我们可以设计自己的异常类型。从 Java 异常类的结构层次可以看出,Java 异常的公共父类为 Throwable。在程序运行中可能出现两种问题:一种是由硬件系统或JVM导致的故障,Java 定义该故障为 Error。这类问题用户程序不能够处理的。另外一种问题是程序运行错误,J

17、ava 定义为 Exception。这种情况下,可以通过程序设计的调整来实现异常处理。因此,用户定义的异常类型必须是 Throwable 的直接或间接子类。Java 推荐用户的异常类型以 Exception 为直接父类。创建用户异常的方法如下:class UserException extends Exception UserException()super();/其它语句 http:/ MyotherException extends Exception /用户定义的异常 public MyotherException()public MyotherException(String msg)

18、super(msg);http:/ class Exception8 public static void f()throws MyotherException System.out.println(Throwing MyotherException from f();throw new MyotherException();public static void g()throws MyotherException System.out.println(Throwing MyotherException from g();throw new MyotherException(Originated in g();public static void main(String args)try f();catch(MyotherException e)e.printStackTrace();try g();catch(MyotherException e)e.printStackTrace();http:/

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(java异常处理PPT演示课件(PPT 42页).pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|