欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第四讲 Java的异常处理.ppt

    • 资源ID:2201641       资源大小:162KB        全文页数:39页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第四讲 Java的异常处理.ppt

    Java的异常处理,伍淳华北京邮电大学计算机学院,Java,Java的异常处理,什么是异常,异常就是在程序的执行过程中所发生的异常事件,它中断指令的正常执行,Java,Java的异常处理,异常处理,可能出现的问题用户输入错误设备错误物理限制代码错误,Java,Java的异常处理,异常(Throwable)分类,Throwable:所有异常的根类Error:Throwable的直接子类 动态链接失败,虚拟机错误等。通常Java程序不应该捕获这类异常,也不会抛弃这种异常。,Java,Java的异常处理,异常(Throwable)分类,Exception 运行时异常继承于RuntimeException.Java一般是由于程序错误产生-错误的类型转换-数组访问越界-访问空指针 编译器允许不对它们做出处理(unchecked)“如果出现RuntimeException异常,就一定是你的问题”,Java,Java的异常处理,异常(Throwable)分类,Exception 非运行时异常 除了运行时异常之外的其它的继承自Exception的异常类。程序曾经能够正常运行,但由于某种情况的变化,导致异常出现,程序不能正常运行。-文件不存在-用户输入错误 编译器要求程序必须对这类异常进行处理(checked),Java,Java的异常处理,Java,Java的异常处理,异常示例,import java.io.*;class ExceptionDemo1 public static void main(String args)FileInputStream fis=new FileInputStream(“text”);int b;while(b=fis.read()!=-1)System.out.print(b);fis.close();,Java,Java的异常处理,异常示例,c:javac ExceptionDemo1.javaExceptionDemo1.java:6:Exception java.io.FileNotFoundException must be caught,or it must be declared in the throws clause of this methodFileInputStream fis=new FileInputStream(“text”);ExceptionDemo1.java:8:ExceptionJava.io.IOException must be caught,or it must be declared in the throws clause of this methodwhile(b=fis.read()!=-1),Java,Java的异常处理,异常处理,class ExceptionDemo2 public static void main(String args)int a=0;System.out.println(5/a);,Java,Java的异常处理,异常处理,c:/javac ExceptionDemo2.javac:/java ExceptionDemo2 java.lang.ArithemeticException:/by zero atExceptionDemo2.main(ExceptionDemo2.java:4),Java,Java的异常处理,异常处理机制,在java的执行过程中,如果出现了异常事件,就会生成一个异常对象。JAVA有两种对异常的处理方式:抛弃异常:方法内部产生异常的地方,生成一个异常对象,并将该异常对象提交给方法的调用者,这一异常的生成和提交过称成为抛弃(throw)异常 捕获异常:当Java运行时得到一个异常对象时,它将会寻找处理这一异常的代码。找到能够处理这种类型的异常的方法后,系统把当前异常对象交给这个方法处理,这一过程成为捕获(catch)异常,Java,Java的异常处理,抛弃异常,声明抛弃异常 如果在一个方法中生成了一个异常,但是这一方法并不确切的知道如何对这一异常事件进行处理,这时,一个方法就应该声明抛弃异常。“一个方法不仅需要告诉编译器将要返回什么值,还要告诉编译器可能发生什么异常”,Java,Java的异常处理,抛弃异常,声明抛弃异常声明抛弃异常是在一个方法声明中的throw子句中指明的。例如 public FileInputStream(String name)throws IOExceptionthrows子句中可以同时指明多个异常,说明该方法将不对这些异常进行处理,而是声明抛弃它们。public static void main(String args)throws IOException,IndexOutOfBoundsException,Java,Java的异常处理,抛弃异常,如何抛弃异常抛弃异常首先要生成异常对象,异常对象可由某些类的实例生成,也可以由JAVA虚拟机生成。抛弃异常对象时通过throw语句实现。IOException e=new IOException();throw e;可以抛弃的异常必须是Throwable或者其子类的实例。下面的语句在编译时将会产生语法错误 throw new String(“want to throw”);,Java,Java的异常处理,抛弃异常,对于已存在的异常类,抛出该异常非常容易找到一个合适的异常类;创建这个类的一个对象;将该对象抛出;,Java,Java的异常处理,抛弃异常,对于已存在的异常类,抛出该异常非常容易 String readData(Scanner in)throws EOFExceptionwhile()if(!in.hasNext()if(nlen)throw new EOFException();,Java,Java的异常处理,自定义异常类,自定义异常类即是定义一个派生于Exception的直接或间接子类;如一个派生于IOException的类。一般情况下,定义的异常类应该包括两个构造器,一个是默认的构造器,一个是带有详细描述信息的构造器(超类Throwable的toString方法会打印出这些详细信息,有利调试代码),Java,Java的异常处理,自定义类,class FileFormatException extends IOExceptionpublic FileFormatException()public FileFormatException(String gripe)super(gripe);,Java,Java的异常处理,自定义类,String readData(BufferedReader in)throws FileFormatExceptionwhile()if(ch=read()=-1)if(nlen)throw new FileFormatException(“File format error!”);,Java,Java的异常处理,捕获异常 捕获异常是通过try-catch-finally语句实现的try catch(ExceptionName1 e)catch(ExceptionName2 e)finally,Java,Java的异常处理,try 捕获异常的第一步使用try选定捕获异常的范围,由try所限定的代码块中的语句在执行过程中可能会生成异常对象,Java,Java的异常处理,catch-每个try代码块可以伴随一个或多个catch语句,用于处理try代码块中所生成的异常事件。-catch语句只需要一个形式参数指明它所能捕获的异常类型,这个类必须是Throwable的子类,运行时系统通过参数值把被抛弃的异常对象传寄给catch块-在catch块中是对异常对象进行处理的代码,与访问其他对象一样,可以访问一个异常对象的变量或调用它的方法。getMessage()是类Throwable所提供的方法,用来得到有关异常事件的信息,类Throwable还提供了方法printStackTrace()用来跟踪异常事件发生时执行堆栈的内容,Java,Java的异常处理,trycatch(FileNotFoundException e)System.out.println(e);System.out.println(“message:”+e.getMessage();e.printStackTrace(System.out);catch(IOException e)System.out.println(e);,Java,Java的异常处理,catch语句的顺序,捕获异常的顺序和不同catch语句的顺序有关,当捕获到一个异常时。剩下的catch语句就不再进行匹配。因此在安排catch语句的顺序时,首先应该捕获最特殊的异常,然后在逐渐一般化,也就是一般先安排子类,再安排父类。,Java,Java的异常处理,finally 捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,使得控制流程转到程序的其它部分以前,能够对程序的状态做统一的管理。不论在try代码块中是否发生了异常事件,finally块中的语句都会被执行。,Java,Java的异常处理,try/1code that might throw exceptions/2 catch(IOException e)/3show error dialog finally/4/5,Java,Java的异常处理,程序没有产生异常,1-2-4-5程序产生了一个可被catch捕获的异常:1-3-4-5程序产生了一个不能被catch捕获的异常:1-4,Java,Java的异常处理,异常处理,积极处理消极处理,Java,Java的异常处理,异常处理,例:FileInputStream(string name)throws FileNotFoundExceptionimport java.io.*;class ExceptionDemo1 public static void main(string args)FileInputStream fis=new FileInputStream(“text”);,Java,Java的异常处理,异常处理,积极处理方式import java.io.*;class ExceptionDemo1 public static void main(string args)tryFileInputStream fis=new FileInputStream(“text”);catch(FileNotFoundExcption e),Java,Java的异常处理,异常处理,消极处理方式import java.io.*;class ExceptionDemo1 public static void main(string args)throws FileNotFoundExcption FileInputStream fis=new FileInputStream(“text”);,Java,Java的异常处理,异常处理,处理原则捕获那些知道如何处理的异常;将不知道如何处理的异常抛出;,Java,Java的异常处理,使用异常机制的建议,(1)异常不能代替简单的测试:只在异常情况下使用异常机制 例:上百万地对一个空栈进行退栈操作if(!s.empty()s.pop();try()s.pop();catch(EmptyStackException e),Java,Java的异常处理,使用异常机制的建议,_TestThrow/Catch_154 milliseconds 10739milliseconds_,Java,Java的异常处理,使用异常机制的建议,(2)不要过分细化异常,尽量将有可能产生异常的语句放在一个try语句块中;(3)抛出的异常类型尽可能明确,不要总是抛出IOException;(4)早抛出,晚捕获,尽量让高层次的方法通告用户发生了错误;,Java,Java的异常处理和输入输出流,本讲小结,异常分类捕获异常声明抛弃异常抛弃异常,Java,Java语言概述,习题,email:pwd:buptjava,Thank You!,

    注意事项

    本文(第四讲 Java的异常处理.ppt)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开