- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 Java异常处理及输入输出流简介 8.1 异常处理概述 8.2 Java异常的处理方法 8.3 Java数据流概述和java.io包 8.4 File类 8.5 文件输入与输出 8.6 标准输入和输出 本章要点 了解异常和异常分类 理解Java异常处理机制和异常类。 掌握try/catch/ finally语句处理异常的方式以及如何声明异常。 了解自定义异常。 理解Java语言中数据流的概念 掌握各种常用的输入输出流类 掌握各种文件操作类, 了解流类的继承关系 8.1 异常处理概述 Java异常是描述在代码段中发生的运行出错情况的对象。程序中的错误可能来自于编译错误和运行错误。编译错误是由于所编写的程序存在语法问题,未能通过由源代码到目标代码的编译过程而产生的错误,它将由语言的编译系统负责检测和报告;运行错误是在程序的运行过程中产生的错误。 8.1.1 什么是异常 在程序执行中,任何中断正常程序流程的异常条件就是错误或异常。 第一种,Java 虚拟机检测到了非正常的执行状态,这些状态可能是由以下几种情况引起的: ① 表达式的计算违反了Java 语言的语义,例如整数被0 除。 ② 在载入或链接Java 程序时出错。 ③ 超出了某些资源限制,例如使用了太多的内存。 第二种,Java 程序代码中的throw 语句被执行。 第三种,异步异常发生。异步异常的原因可能有: ① Thread 的stop 方法被调用。 ② Java 虚拟机内部错误发生。 8.1.2 异常处理机制 Java异常处理是通过5个关键字来管理的。它们是try、catch、throw、throws和finally。 程序里,需要被监测的程序语句序列应包含在一个try代码块中。如果try代码块中有异常发生,那么就要抛出该异常。可以用catch来捕获这个异常,并且在catch块中加以适当地处理。系统产生的异常会由Java运行时系统自动抛出。如果要手动抛出异常,则使用关键字throw。在一些情况下,从一个方法抛出的异常必须用一个throws语句指定为异常。最后,从try代码块退出时,必须执行的代码要放在一个finally代码块中。 8.1.3 异常分类 Java中的异常类具有层次组织,其中Throwable类是Error类(错误类)和Exception类(异常类)的父类,Throwable是Object的直接子类。 异常类(java.lang.Exception)继承于java.lang.Object中的java.lang.Throwable类。异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种。 异常类的继承结构 1.执行异常 即运行时异常,继承于RuntimeException。Java编译器允许程序不做处理。 ArithmeticException:一个不寻常算术运算产生的异常。 ArrayStoreException:存入数组的内容数据类型不一致所产生的异常。 ArrayIndexOutOfBoundsException:数组索引超出范围所产生的异常。 ClassCastExcption:类对象强迫转换造成不当类对象所产生的异常。 NumberFormatException:字符串转换数值所产生的异常。 IndexOutOfBoundsException:索引超出范围所产生的异常。 NegativeException:数组建立负值索引所产生的异常。 NullPointerException:对象引用参考值为null所产生的异常。 2.检查异常 除了执行异常外,其余的子类是属于检查 异常类也称为非运行时异常,它们都在 java.lang类库内定义。Java编译器要求程序必须捕获或者声明抛弃这种异常。 ClassNotFoundException:找不到类或接口所产生的异常。 CloneNotSupportedException:使用对象的clone方法但无法执行Cloneable所产生的异常。 IllegaAccessException:类定义不明确所产生的异常。 InstantiationException:使用newInstance方法试图建立一个类instance时所产生的异常。 InterruptedException:目前线程等待执行,另一线程中断目前线程所产生的异常。 8.1.4 错误分类 Error类与异常一样,它们都是继承自java.lang.Throwable类。Error 类对象由 Java 虚拟机生成并抛出。Error类包括linkageError(结合错误)与Vitualm
文档评论(0)