Java语言程序设计实用教程第9章 异常处理.pptVIP

  • 8
  • 0
  • 约3.83千字
  • 约 23页
  • 2019-07-17 发布于辽宁
  • 举报

Java语言程序设计实用教程第9章 异常处理.ppt

SISE Java语言程序设计实用教程 * Java语言程序设计实用教程 第9章 异常处理 * 本章学习要点: 理解异常的概念 掌握运用try块、catch块和finally块处理异常 掌握运用多重catch块处理异常 掌握运用嵌套try/catch块处理异常 掌握运用关键字throw和throws引发异常 掌握运用Java编写和使用自定义异常 异常的概念 异常的概念 所谓异常,是指由于程序运行时发生错误,从而导致程序错误结束。 内存用完 找不到文件 网络连接故障 良好的程序除具有用户所需求的功能外,还应该具备预见并处理可能发生的各种异常的功能 Java给程序员提供了处理运行时错误的功能,称为异常处理。没有异常处理代码的程序,在运行时发生错误则可能非正常结束,引起严重问题。例如,程序将钱从储蓄账户转账到经常账户时,当钱从储蓄账户提出还未存入经常账户时,由于运行时错误,程序终止,用户就会损失掉这笔钱。 异常类(见P213,图9-1) 在java的异常处理机制中,定义了很多用来描述和处理异常的类,称为异常类。所有的异常类都直接或间接从Throwable类继承。 Throwable类有两个直接子类:Error类及Exception类,后者是Java程序中需要大量处理的。Error类描述的是内部系统错误,包括动态链接失败、虚拟机错误等,Java程序不做处理。Exception类描述的是程序和外部环境引起的错误,这些错误能通过程序捕获和处理 每种异常类对应着某一种或者一类错误,类中可以包含该运行的错误信息和处理错误的方法等内容。 常用的RuntimeException类的子类(表9-1) RuntimeException类是Exception 类的子类,用来描述编程错误。如被0除等系统错误、数组下标超范围等。它一般由系统检测, 用户可不做处理,系统将它们交给缺省的异常处理程序。 1)算术异常ArithmeticException 该异常类型在进行数学运算过程中,由于除法运算中的除数为0,则产生算术异常。 2)数组越界异常IndexOutOfBandsException 该异常用于在数组等数据元素有一定范围的数据存储结构中,当数组存储超过指定界限时产生。 3)类型转换异常ClassCastException 该类异常时由于在变量类型转换过程中,被转换变量无法转换为指定类型的变量所导致。 常用的RuntimeException类的子类(二) 4)未找到类定义异常NoClassDefFoundException 如果Java程序在编译过程中,根据Java源程序指定的包路径没有发现指定的类,则抛出该异常。 5)安全异常SecurityException 当Java系统检测到违反安全的行为,则抛出该异常。 6)空指针异常NullPointerException 除了Java类库所定义的异常类之外,用户也可以通过继承已有的异常类来定义自己的异常类,并在程序中使用。 Public String toString():返回描述当前异常对象信息的字符串 Public String getMessage():返回描述当前异常对象的详细信息。 Public void printStackTrace():没有返回值,通常是在屏幕上打印输出当前异常对象使用堆栈的轨迹,即程序先后调用了好些方法。 Exception的方法 在执行某个java程序的过程中,运行时系统随时对它进行监控 每当程序运行过程中发生一个可识别的错误,即这个错误有一个异常类与之对应,系统就会产生这个异常类的一个对象,把当前的进程停止,并将这个异常抛出。 当JAVA运行时系统得到一个异常对象时,它会寻找处理这一异常的代码,从当前方法,按堆栈的顺序从下向上查找.直到找到一个方法能够处理这种异常为止.然后把异常对象交给它进行处理.这个过程称为捕获异常。 JAVA的异常处理机制就是由捕获异常和抛出异常两部分组成。 异常的处理过程 异常处理的方法 异常处理方法 异常处理的方法有两种: 一种是使用try……catch……finally对异常进行捕获,方法自身对异常进行捕获; 另一种是通过throws和throw抛出异常,让调用它的方法对异常进行处理。 try...catch…finally结构 try{ 可能出现异常的程序代码 } catch(异常类名1 异常对象名1){ 异常类名1对应的异常处理代码 } catch(异常类名2 异常对象名2){ 异常类名2对应的异常处理代码 } …… finally{ 必须执行的代码 } 用try{…}选定捕获例外的范围,由try所限定的语句在执行过程中可能会生成

文档评论(0)

1亿VIP精品文档

相关文档