新异常处理.ppt
文本预览下载声明
8.1.1 异常的产生 1、异常发生的原因 (1)JVM检测到非正常的执行状态 (2)程序代码中的 throw 语句被执行 (3)因为代码段不同步而产生 8.1.2 Java定义的标准异常类 8.2.2 Throwable类的常用方法 n getCause() //如果异常为空或者不存在或者不明,用它返回 n getLocalizedMessage() //返回本地化信息 n getMessage() //返回异常的原因 n getStackTrace() //返回堆栈跟踪情况 n initCause(Throwable?cause) //初始化原因 8.2.2 Throwable类的常用方法 n printStackTrace() //打印堆栈的标准错误流 printStackTrace(PrintStream?s) //打印堆栈的标准打印流 toString() //返回简单描述 申明抛出异常 ……. methodName() throws ExceptionName { ……. } 抛出异常 ExceptionName e = new ExceptionName(); throw e //或者 throw new ExceptionName(); * * 面向对象的 语言程序设计 Java 主讲 : 异常处理 第 8 章 异常Exception : 是指一些代表异常状态的东西,如除0溢出、数组越界、文件找不到等。 应用系统运行时,必须对这些进行及时处理,不然可能使应用崩溃,或者产生意外的结果。 8 异常处理 计算机系统处理异常的方法 1:系统本身检测、遇到异常时,程序终止运行。 2:程序员在程序设计中兼顾检测、处理异常。 8 异常处理 8.1 异常的分类 一旦出现异常,系统将会立即终止程序的运行,并将控制权返回操作系统。 Page 162 例 8-1 ExceptionDemo.java 8.1 异常的分类 8.1 异常的分类 2. 异常的层次结构 Throwable Error Exception RuntimeException 缺省的例外 处理程序 由用户捕获或 声明并处理 不做处理 8.1 异常的分类 2. 异常的层次结构 在java语言中每个异常是由一个对象来代表的,所有的异常都直接或间接地继承自Throwable类。 除了Java类库所定义的异常类之外,用户也可以通过继承已有的异常类来定义自己的异常类,并在程序中使用(利用throw产生,catch捕捉)。 2. 异常的层次结构 Throwable是java.lang包中专门用来处理异常的类,它有两个子类: 1:Error类用来处理程序运行环境方面的异常。如虚拟机错误、连接错误。 2:Exception类。 8.1 异常的分类 Error:由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,Java程序不做处理。 Runtime Exception:Java虚拟机在运行时生成的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,因此由系统检测, 用户可不做处理,系统将它们交给缺省的异常处理程序(当然,必要时,用户可对其处理)。 Exception:一般程序中可预知的问题,其产生的例外可能会带来意想不到的结果,因此Java编译器要求Java程序必须捕获或声明所有的非运行时异常。如文件操作中:文件不存在、数据读写错误等等 8.1 异常的分类 异常处理时机 (1)编译时异常(非运行时异常): 在程序中必须对其进行处理,否则编译器 会指出错误。 (2)运行时异常(RunTimeException): 程序中可以不做处理,直接由运行时系统来处理。 8.1 异常的分类 8.1 异常的分类 Page 164 表8-1 常用异常列表 8.2 异常处理机制 8.2.1 异常处理的语句结构 Java的异常处理是通过3个关键词来实现的:try-catch-finally。用try来执行一段程序,如果出现例外,系统抛出(throws)一个例外,可以通过它的类型来捕捉(catch)并处理它,或最后(finally)由缺省处理器来处理。 try { //接受监视的程序块,在此区域内发生 //的异常,由catch中指定的程序处理; } catch ( 要处理的异常种类和标识符
显示全部