Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第6章 异常处理.ppt

Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第6章 异常处理.ppt

ID:50051443

大小:266.00 KB

页数:22页

时间:2020-03-08

Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第6章 异常处理.ppt_第1页
Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第6章 异常处理.ppt_第2页
Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第6章 异常处理.ppt_第3页
Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第6章 异常处理.ppt_第4页
Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第6章 异常处理.ppt_第5页
资源描述:

《Java面向对象程序设计 教学课件 作者 梁燕来 程裕强 第6章 异常处理.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章异常处理主讲人:程裕强主要内容理解程序异常掌握异常类继承体系关系掌握try-catch结构熟悉try-catch-finally结构掌握异常抛出机制理解异常处理的优缺点了解断言6.1引例Java编译器可以帮我们检查出程序中的语法错误,比如变量未定义、语句后缺少分号等语法错误。在程序运行时,可能由于程序内部或外部原因出现一些意外的情况,称作异常。比如下面程序,编译时通过,只有运行时才会暴露出错误。publicclassA{staticAgetInstance(){returnnull;//返回一个空对象}}publicclassPrimerTe

2、st1{publicstaticvoidmain(String[]args){Aa=A.getInstance();a.toString();//运行报错}}主程序PrimerTest1中通过A的静态方法getInstance取得一个对象,然后调用该对象的toStrng方法。主程序编译时通过,执行时报错。对于这个简单的异常,可以在程序中添加条件判决即可解决。对于一些更为隐蔽的运行时错误是很难发现的,即使发现了,我们在短时间内也难以判定错误的根源,也就是难以使用条件判定分离出预知的错误。6.2异常类Java提供了所有异常的父类Throwable,只有

3、Throwable的子孙类才是异常类。Throwable有3个重要的子孙类:Exception、Error、RuntimeExcption。Error类表示错误,比如内存溢出,程序无法恢复不需要程序处理。Exception表示程序可能恢复的异常,其子类名均以Exception做后缀。RuntimeExcption是运行时异常,是由于程序自身的问题引起的,比如数组下标越界。通过异常类对象,可以获取程序发生异常的信息,以便对异常进行处理。Exception类提供了2个常用的方法:getMessage()返回该异常的详细描述字符串;printStackT

4、race()输出该异常的跟踪栈信息。还可以调用Exception类继承的toString()方法,输出异常类信息。6.3异常处理机制对出现异常的代码进行处理称为异常处理。异常处理的能力,也是判定一门编程语言程序的重要标准。异常处理机制可以让程序具有更好的容错性,程序更加健壮。6.3.1try-catch常用的异常处理语句try-catchtry{可能会出现异常的语句;}catch(Exceptione){//捕捉到异常对象e处理异常;}例1:通过异常处理机制来改进“引例”。publicclassPrimerTest3{publicstaticvoi

5、dmain(String[]args){try{Aa=A.getInstance();a.toString();}catch(Exceptione){System.out.println(e);System.out.println(e.getMessage());e.printStackTrace();}}}6.3.2try-catch-finally捕捉异常的完全格式如下:try{可能会出现异常的语句;}catch(Exceptione){处理异常;}finally{异常发生,方法返回之前,总是要执行的代码;}一个try-catch-finall

6、y结构,只要try块开始执行了,finally块里面的代码保证执行一次并且只执行一次。例2:演示try-catch-finally语句进行异常处理。publicclassTestTry{publicstaticvoidmain(String[]args){try{System.out.println("flag1");inti=1/0;System.out.println("flag2");}catch(Exceptione){//捕获异常System.out.println("flag3");System.out.println(e);}fina

7、lly{System.out.println("flag4");}}}由运行结果可知:flag3出现说明异常发生,flag4出现说明finally语句被执行。程序猿小插曲程序员的柔情你永远不懂。世界上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离;世界上最痴心的等待,是我当case你是switch,或许永远都选不上自己;世界上最真情的相依,是你在try我在catch。无论你发神马脾气,我都默默承受,静静处理。到那时,再来期待我们的finally!6.4抛出异常如果某方法不知道如何处理异常,则可以将本方法产生的异常抛出(throws

8、)由上一级调用者去处理。在Java应用程序中如果main方法也不知道如何处理异常,也可以抛出异常,由JVM处理。JVM在终

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。