第6章异常处理
1
java中的异常处理
主要内容
Case:
异常处理概述
什么是异常
为何采用异常处理
异常的分类与层次
异常的处理机制
对异常处理的进一步讨论
作业
2
java中的异常处理
异常处理概述
什么是异常
异常就是在程序的运行过程中所发生的意外事件,它中断指令的正常执行。
Java中提供了一种独特的处理异常的机制,通过异常来处理程序设计中出现的错误。
3
java中的异常处理
为何使用意外处理:
把出错处理和正常代码分开。比如有程序是处理文件,大家看流程,这个流程中充满了错误可能。
readFile {
打开文件;打不开咋办?
判断大小; 大小判断失败怎么办?(磁带)
分配内存; 内存不够
读入内存; 文件读不出来
关掉文件; 文件关不掉。。
} 解决方法:写大量的if语句。。
4
java中的异常处理
传统的错误检测和纠正
errorCodeType readFile {
initialize errorCode = 0;
①打开文件;
if (打开文件成功) {②判断文件长
if (文件长取到) {③分配内存
if (分内存成功) { ④读入内存
if (读文件失败) {errorCode = -1; }//读文件判断
}
else {errorCode = -2; } //分配内存失败
} else {errorCode = -3; } //取不到文件长
⑤关闭文件;
if (文件没关&& errorCode == 0) {errorCode = -4;
} else {errorCode = errorCode and -4; }
} else {errorCode = -5; }
return errorCode;
}
5
java中的异常处理
从上面的流程可看出真正有用的代码不多,就五条而已,其它全部是判断错误用的,主要逻辑都被错误处理代码混得看不清了,程序可读性差,出错返回信息量太少。
在Java中,处理这种情况的方法是利用异常处理,把出错处理和正常代码分开,Java异常处理通过5个关键字try,catch,finally,throw和throws进行管理。
6
java中的异常处理
Java的解决方式
readFile {//结构清楚,无需自己判断,代码量小。
try {
打开文件;
判断大小;
分配内存;
读入内存;
关掉文件; } catch (文件打开失败) {
处理代码;
} catch (大小取不到失败) {
处理代码;
} catch (内存分配失败) {
处理代码;
} catch (读取失败) {
处理代码;
} catch (文件关闭失败) {
处理代码; }}
7
java中的异常处理
异常类的分类与层次
异常类的层次结构
在jdk中,每个包中都定义了异常类,。当Java程序遇到不可预料的错误时,会实例化一个从Throwable类继承的对象。
java中的异常类可分为两大类:
◇ Error: 错误Error类指的是系统错误或运行环境出现的错误,这些错误一般是很严重的错误,即使捕捉到也无法处理,由Java虚拟机生成并抛出,包括系统崩溃、动态链接失败、虚拟机错误等,在Java程序中不做处理。
◇ Exception: 异常Exception类则是指一些可以被捕获且可能恢复的异常情况,是一般程序中可预知的问题。对于异常可分为两类:
(1) 运行时异常:程序中可以不做处理,直接由运行时系统来处理。
(2) 非运行时异常:在程序中必须对其进行处理,否则编译器会指出错误。
8
java中的异常处理
异常类的结构层次
9
java中的异常处理
Exception类
1. Exception类的构造方法
Exception类有两种构造方法:
Exception():没有指定的消息串,直接构造一个Exception。
Exception(String exp):根据参数提供的消息串,创建一个Exception。
例如,创建一个异常对象:
Exception myExp=new Exception(“异常!”);
10
java中的异常处理
第6章 异常处理 来自淘豆网m.daumloan.com转载请标明出处.