欢迎来到天天文库
浏览记录
ID:18077902
大小:209.00 KB
页数:84页
时间:2018-09-13
《java语言程序设计基础教程(异常处理和java网络编程)ppt84》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章 异常处理了解异常处理的基础知识理解异常处理机制自定义异常类的使用9.1异常处理基础异常就是在程序的运行过程中所发生的异常事件,它中断指令的正常执行。Java中提供了一种独特的处理异常的机制,通过异常来处理程序设计中出现的错误。当程序运行出现异常时,Java运行环境就用异常类Exception的相应子类创建一个异常对象,并等待处理,例如,读取一个不存在的文件时,运行环境就用异常类IOException创建一个对象。异常对象可以调用如下方法得到或输出有关异常的信息。9.1.1异常示例【例9-1】读取一个不存在的文件时,系统编
2、译的时候报异常。importjava.io.*;classExceptionDemo1{publicstaticvoidmain(Stringargs[])throwsIOException{FileInputStreamfis=newFileInputStream("test.txt");intb;while((b=fis.read())!=-1){System.out.print(b);}fis.close();}}查看程序的编译结果:编译结果提示:第4行会出现异常,必须对其进行捕获或声明抛出,否则程序编译无法通过。9.1.
3、2异常类的层次在jdk中,每个包中都定义了异常类,而所有的异常类都直接或间接地继承于Throwable类。图9-1为jdk中异常类的继承关系。异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception,具体的RuntimeException继承RuntimeException。9.1.3异常类的分类Java中的异常类可分为两大类:Error和Exception。Error——动态链接失败,虚拟机错误等,通常Jav
4、a程序不应该捕获这类异常,也不会抛弃这种异常。Exception——包括运行时异常和非运行时异常。1)运行时异常:继承于RuntimeException的类都属于运行时异常,例如算术异常(除零错)、数组下标越界异常等等。由于这些异常产生的位置是未知的,Java编译器允许程序员在程序中不对它们做出处理。2)非运行时异常:除了运行时异常之外的其他由Exception继承来的异常类都是非运行时的异常,例如FileNotFoundException(文件未找到异常)。Java编译器要求在程序中必须处理这种异常,捕获异常或者声明抛弃异常。
5、1.Error体系类型异常的特点Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。如果出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以,在进行程序设计时,应该更关注Exception体系。2.Exception体系类型异常的特点Exception体系包括RuntimeException体系和其他非RuntimeException的体系(1)RuntimeExceptionRuntimeException体系包括错误的类型转换、数组越界
6、访问和试图访问空指针等等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。(2)其他(IOException等等)这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。9.2异常的处理Java语言中有两种异常处理机制:捕获异常和声明抛弃异常。(1)捕获异常:当Java运行环境得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。找
7、到能够处理这种类型的异常的方法后,运行环境把当前异常对象交给这个方法进行处理,这一过程称为捕获(catch)异常。这是积极的异常处理机制。如果Java运行环境找不到可以捕获异常的方法,则运行环境将终止,相应的Java程序也将退出。(2)声明抛弃异常:如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃(throws)异常。这是一种消极的异常处理机制。9.2.1捕获异常捕获异常是通过try-catch-finally语句实现的。try{......}catch(ExceptionName1e){......}cat
8、ch(ExceptionName2e){......}......}finally{......}◇try捕获异常的第一步是用try{…}选定捕获异常的范围,由try所限定的代码块中的语句在执行过程中可能会生成异常对象并抛弃。◇catch每个try代码块可以伴随
此文档下载收益归作者所有