欢迎来到天天文库
浏览记录
ID:37768162
大小:351.00 KB
页数:78页
时间:2019-05-30
《java异常处理与输入输出流简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8讲Java异常处理及输入输出流简介8.1异常处理概述8.2Java异常的处理方法8.3Java数据流概述和java.io包8.4File类8.5文件输入与输出8.6标准输入和输出本章要点了解异常和异常分类理解Java异常处理机制和异常类。掌握try/catch/finally语句处理异常的方式以及如何声明异常。了解自定义异常。理解Java语言中数据流的概念掌握各种常用的输入输出流类掌握各种文件操作类,了解流类的继承关系8.1异常处理概述Java异常是描述在代码段中发生的运行出错情况的对象。程序中的错误可能来自于编译错误和运行错误。编
2、译错误是由于所编写的程序存在语法问题,未能通过由源代码到目标代码的编译过程而产生的错误,它将由语言的编译系统负责检测和报告;运行错误是在程序的运行过程中产生的错误。8.1.1什么是异常在程序执行中,任何中断正常程序流程的异常条件就是错误或异常。第一种,Java虚拟机检测到了非正常的执行状态,这些状态可能是由以下几种情况引起的:①表达式的计算违反了Java语言的语义,例如整数被0除。②在载入或链接Java程序时出错。③超出了某些资源限制,例如使用了太多的内存。第二种,Java程序代码中的throw语句被执行。第三种,异步异常发生。异步异常
3、的原因可能有:①Thread的stop方法被调用。②Java虚拟机内部错误发生。8.1.2异常处理机制Java异常处理是通过5个关键字来管理的。它们是try、catch、throw、throws和finally。程序里,需要被监测的程序语句序列应包含在一个try代码块中。如果try代码块中有异常发生,那么就要抛出该异常。可以用catch来捕获这个异常,并且在catch块中加以适当地处理。系统产生的异常会由Java运行时系统自动抛出。如果要手动抛出异常,则使用关键字throw。在一些情况下,从一个方法抛出的异常必须用一个throws语句指
4、定为异常。最后,从try代码块退出时,必须执行的代码要放在一个finally代码块中。8.1.3异常分类Java中的异常类具有层次组织,其中Throwable类是Error类(错误类)和Exception类(异常类)的父类,Throwable是Object的直接子类。异常类(java.lang.Exception)继承于java.lang.Object中的java.lang.Throwable类。异常可分为执行异常(RuntimeException)和检查异常(CheckedExceptions)两种。异常类的继承结构Throwable
5、ErrorExceptionObjectAWTExceptionRuntimeExceptionIOException……1.执行异常即运行时异常,继承于RuntimeException。Java编译器允许程序不做处理。ArithmeticException:一个不寻常算术运算产生的异常。ArrayStoreException:存入数组的内容数据类型不一致所产生的异常。ArrayIndexOutOfBoundsException:数组索引超出范围所产生的异常。ClassCastExcption:类对象强迫转换造成不当类对象所产生的异常。
6、NumberFormatException:字符串转换数值所产生的异常。IndexOutOfBoundsException:索引超出范围所产生的异常。NegativeException:数组建立负值索引所产生的异常。NullPointerException:对象引用参考值为null所产生的异常。2.检查异常除了执行异常外,其余的子类是属于检查异常类也称为非运行时异常,它们都在java.lang类库内定义。Java编译器要求程序必须捕获或者声明抛弃这种异常。ClassNotFoundException:找不到类或接口所产生的异常。Clon
7、eNotSupportedException:使用对象的clone方法但无法执行Cloneable所产生的异常。IllegaAccessException:类定义不明确所产生的异常。InstantiationException:使用newInstance方法试图建立一个类instance时所产生的异常。InterruptedException:目前线程等待执行,另一线程中断目前线程所产生的异常。8.1.4错误分类Error类与异常一样,它们都是继承自java.lang.Throwable类。Error类对象由Java虚拟机生成并抛出。E
8、rror类包括linkageError(结合错误)与VitualmachineError(虚拟机错误)两种子类。LinkageError的子类表示一个类依赖于另一个类,但是,在前一个类编译之后,后一个类的改
此文档下载收益归作者所有