文档

Java™ 教程-Java Tutorials 中文版
异常是什么?
Trail: Essential Classes
Lesson: Exceptions

异常是什么?

术语 exception 是短语 "exceptional event (异常事件)" 的简写。


定义: 定义: exception 是一个在程序执行期间发生的事件,它会中断程序指令的正常流程。

当方法中发生错误时,该方法会创建一个对象并将其交给运行时系统。该对象称为 exception object (异常对象),它包含有关错误的信息,包括错误的类型和错误发生时程序的状态。创建异常对象并将其交给运行时系统称为 throwing an exception (抛出一个异常)

在一个方法抛出异常之后,运行时系统会尝试找到一些东西来处理它。处理异常的可能 "东西" 的集合,是已被调用的到达发生错误的方法的有序方法列表。该方法列表称为 call stack (调用推栈)(参见下图)。

调用堆栈显示三个方法调用,其中第一个调用的方法具有异常处理程序。

调用堆栈。

运行时系统在调用堆栈中搜索包含可以处理异常的代码块的方法。这段代码称为 exception handler (异常处理程序)。搜索从发生错误的方法开始,并以调用方法的相反顺序继续浏览调用堆栈。找到适当的处理程序后,运行时系统会将异常传递给处理程序。如果抛出的异常对象的类型与处理程序可以处理的类型匹配,则认为异常处理程序是适当的。

异常处理程序的选择被称为 catch the exception (捕获异常)。如果运行时系统彻底搜索了调用堆栈上的所有方法,但没有找到适当的异常处理程序,如 下图 所示,则运行时系统(所以,连同程序)将终止。

调用堆栈显示三个方法调用,其中第一个调用的方法具有异常处理程序。

在调用堆栈中搜索异常处理程序。

使用异常来管理错误比传统的错误管理技术有一些优势。你可以在 Advantages of Exceptions 部分了解更多信息。


Previous page: Exceptions
Next page: The Catch or Specify Requirement