Java程序设计基础第6章 Java异常处理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于某个特定的应用程序所特有的运行错误,则需要编程人员根据程
序的特殊逻辑在用户程序里自己创建用户自定义的异常类和异常对象。
这种用户自定义异常主要用来处理用户程序中特定的逻辑运行错误。
自定义异常必须继承自Throwable或Exception类,用户自定义的异
常建议采用Ex来自百度文库eption作为异常类的父类,自定义异常的格式如下:
6.1 Java异常简介 6.1.1 引入异常
观察前面的程序,大家会发现大部分精力花在出错处理上了 只把能够想到的错误考虑到,对以外的情况无法处理 程序可读性差 出错返回信息量太少
6.1 Java异常简介 6.1.1 引入异常
用Java的try…catch异常处理机制处理:
{
try{
open the file;
表6-1 Exception类的常用方法
6.1.3 常用异常类
所有异常类都继承于Exception类,这些异常类各自代表了一种 特定的错误。这些子类有些是系统事先定义好并包含在Java类库中 的,对应着一个系统运行错误,有时称为系统定义异常。
表6-2 部分常用异常类
6.1.4 自定义异常类
系统定义的异常主要用来处理系统可以预见的较常见的运行错误,
}
public String toString(){
//重载父类的方法,给出详细的错误信息
…
}
…
}
6.2 Java异常处理机制 6.2.1 抛出和声明异常
Java程序在运行时如果引发了一个可以识别的错误,就会产生 一个与该错误相对应的异常类的对象,这个过程叫做异常的抛出。抛 出的是相应异常类对象的实例。
Java程序设计基础第6章 Java异常处理
本章主要内容
异常简介 Java异常处理机制
抛出和声明异常 捕捉异常 使用用户自定义异常
第6章 Java异常处理
一个程序在编译时没有错误信息产生,而在运行过程有时会出现一 些意外的情况导致程序退出,Java语言称之为异常(Exception)。对于 计算机程序来说,异常都是不可避免的。Java内置的异常处理机制可较 好地对这些异常进行处理,保证程序的安全运行。
这类异常属于程序缺陷异常,是设计或实现上的问题。 RuntimeException可以不使用try…catch进行处理,此这类异常也 被称为非受检异常(unchecked exception),但是如果有异常产 生,则异常由JVM处理,程序中断执行,所以保证程序在出错后依然 可以执行,在开发时还是最好使用try…catch处理。 常见的RuntimeException异常如 ArrayIndexOutOfBandsException、ArithmeticException和 NumberFormatException等。 (2) 非RuntimeException异常
6.1 Java异常简介 6.1.1 引入异常
没有错误处理的程序: {
open the file; determine its size; allocate that much memory; read the file; close the file; }
6.1 Java异常简介 6.1.1 引入异常
class MyException extends Exception{ //自定义的异常类子类MyException
public MyException(){
//用户异常的构造函数
…
}
public MyException(String s){
super(s);
//调用父类的Exception的构造函数
以常规方法处理错误: openFiles; if (theFilesOpen){
determine the length of the file; if (gotTheFileLength){
allocate that much memory; if (gotEnoughMemory){
read the file into memory; if (readFailed) errorCode=-1; else errorCode = -2; } else errorCode=-3; } else errorCode=-4 ; } else errorCode=-5;
图6-1 Java中异常类的层次结构
6.1.2 异常类层次结构
1. Error类 Error类及其子类主要用来描述一些Java运行时刻系统内部的错
误或资源枯竭导致的错误,普通的程序不能从这类错误中恢复。此类 型的错误不能抛出,而且出现的几率是很小的。
6.1.2 异常类层次结构
2. Exception类 (1) RuntimeException异常
这类异常一般是程序外部问题引起的异常。这类异常在语法上要 求必须处理,如果不处理将会出现语法错误,不能通过编译,这类异 常称为受检异常(checked exception),如 FileNotFoundException、IOException等 。
6.1.2 异常类层次结构
2. Exception类
catch(memoryAllocateFailed) { dosomething; }
catch(readFailed)
{ dosomething; }
catch(fileCloseFailed)
{ dosomething; }
}
6.1.2 异常类层次结构
Java通过面向对象的方法来处理程序错误。一个异常是由一个 对象来表示,所有的异常都直接或间接地继承自Throwable接口。 Java所有的异常对象都是一个继承Throwable接口的实例。 Throwable接口是类库java.lang包中的一个类,它派生了两个子类: Error和Exception。
determine its size;
allocate that much memory;
read the file;
close the file;
}
catch(fileOpenFailed)
{ dosomething; }
catch(sizeDetermineFailed){ dosomething; }