文档

Java™ 教程-Java Tutorials 中文版
创建异常类
Trail: Essential Classes
Lesson: Exceptions
Section: How to Throw Exceptions

创建异常类

当面对选择要抛出的异常类型时,你可以使用别人写的一个 — Java 平台提供了很多可以使用的异常类 — 或者你可以自己写一个。如果你对以下任何问题的回答是肯定的,那么你应该编写自己的异常类;否则,你可能会使用别人的。

一个例子

假设你正在编写链表类。该类支持以下方法,其中包括:

链表类可以抛出多个异常,并且能够通过一个异常处理程序捕获链表所引发的所有异常是很方便的。此外,如果你计划在包中分发链接列表,则应将所有相关代码打包在一起。因此,链表应该提供自己的一组异常类。

下图 说明了链表引发的异常的一个可能的类层次结构。

链表引发的异常的可能类层次结构。

示例异常类层次结构。

选择超类

任何 Exception 子类都可以用作 LinkedListException 的父类。但是,快速浏览这些子类表明它们不合适,因为它们太专业化或与 LinkedListException 完全无关。因此,LinkedListException 的父类应该是 Exception

你编写的大多数 applet 和应用程序将抛出 Exception 的对象。Error 通常用于系统中严重的硬错误,例如阻止 JVM 运行的错误。


注意: 对于可读代码,最好将字符串 Exception 附加到从 Exception 类继承(直接或间接)的所有类的名称。

Previous page: Chained Exceptions
Next page: Unchecked Exceptions — The Controversy