文档详情

Java语言程序设计郭磊电子教案 第04章 Java中的异常处理.ppt

发布:2017-08-18约字共20页下载文档
文本预览下载声明
第四章 Java中的异常处理 教授:郭磊 【本章导读】 任何计算机语言的程序都难免有漏洞,与C++类似,捕获错误最理想的是在编译期间,最好在试图运行程序以前。然而,在实际的程序设计中,并非所有错误都能在编译期间侦测到。尽管大多数现代程序设计语言提供了一些异常处理形式,但Java支持的异常处理功能比其他语言提供的更灵活。当Java程序执行中发生错误时,错误事件对象可能导致的程序运行错误称为异常(Exception,也称例外),异常会输出错误消息,使其知道该如何正确地处理遇到的问题。 Java异常是描述在代码段中发生的运行出错情况的对象。程序中的错误可能来自于编译错误和运行错误。编译错误是由于所编写的程序存在语法问题,未能通过由源代码到目标代码的编译过程而产生的错误,它将由语言的编译系统负责检测和报告;运行错误是在程序的运行过程中产生的错误。本章主要介绍异常的概念、Java的异常类、Java的异常抛出和处理方式、自定义异常类。 【本章要点】 异常的产生 异常类 异常抛出和处理方式 自定义异常类 4.1 异常的产生 当Java程序执行中发生错误时,错误事件对象可能导致的程序运行错误称为异常(Exception,也称例外),异常会输出错误消息,使其知道该如何正确地处理遇到的问题。 在程序执行中,任何中断正常程序流程的异常条件就是错误或异常。 4.1 异常的产生 Java异常的发生是由哪些因素引起的呢? 第一种,Java 虚拟机检测到了非正常的执行状态。 (1)表达式的计算违反了Java 语言的语义,例如整数被0 除。 (2)在载入或链接Java 程序时出错。 (3)超出了某些资源限制,例如使用了太多的内存。 第二种,Java 程序代码中的throw 语句被执行。 第三种,异步异常发生。 异步异常的原因可能有: (1)Thread 的stop 方法被调用。 (2)Java 虚拟机内部错误发生。 4.2 异常类 在异常发生后,系统会产生一个异常事件,有哪些异常对象?这些异常对象来自那些类呢?Java中的异常类具有层次组织,其中Throwable类是Error类(错误类)和Exception类(异常类)的父类,Throwable是Object的直接子类。 异常类(java.lang.Exception)继承于java.lang.Object中的java.lang.Throwable类。异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种。如图4.1所示。为了深入了解执行异常和检查异常内容,给出了它们的详细介绍列举。 4.2 异常类 4.2.1 主要的几种异常 1、执行异常 执行异常即运行时异常,继承于RuntimeException。Java编译器允许程序不对它们做出处理。下面列出了主要的运行时异常: ArithmeticException:一个不寻常算术运算产生的异常。 ArrayStoreException:存入数组的内容数据类型不一致所产生的异常。 ArrayIndexOutOfBoundsException:数组索引超出范围所产生的异常。 ClassCastExcption:类对象强迫转换造成不当类对象所产生的异常。 IllegaArgumentException:程序调用时,返回错误自变量的数据类型。 IllegaThreadStateException:线程在不合理状态下运行所产生的异常。 NumberFormatException:字符串转换数值所产生的异常。 IllegaMonitorStateException:线程等候或通知对象时所产生的异常。 IndexOutOfBoundsException:索引超出范围所产生的异常。 NegativeException:数组建立负值索引所产生的异常。 NullPointerException:对象引用参考值为null所产生的异常。 SecurityException:违反安全所产生的异常。 4.2.1 主要的几种异常 2、检查异常 除了执行异常外,其余的子类是属于检查异常类也称为非运行时异常,它们都在java.lang类库内定义。Java编译器要求程序必须捕获或者声明抛弃这种异常。下面列出了主要的检查异常: ClassNotFoundException:找不到类或接口所产生的异常。 CloneNotSupportedException:使用对象的clone方法但无法执行Cloneable所产生的异常。 IllegaAccessException:类定义不明确所产生的异常。 Insta
显示全部
相似文档