文档

Java™教程
隐藏目录
异常是什么?
目录:基本的Java类
课程:异常

什么是异常?

异常(exception)是“异常事件”一词的简写。


定义:异常是在程序执行过程中发生的事件,它会中断程序正常执行的流程。

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

方法抛出异常后,运行时系统会尝试找到处理它的方法。可以处理异常的“东西”是一系列被调用的方法,这些方法的顺序是从调用发生错误的方法开始的。这些方法的列表被称为调用栈(参见下图)。

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

调用栈。

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

所选择的异常处理程序被称为捕获异常(catch the exception)。如果运行时系统在调用栈上逐一搜索所有方法后仍未找到合适的异常处理程序,如下图所示,运行时系统(以及程序本身)会终止。

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

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

使用异常来管理错误相对于传统的错误管理技术具有一些优势。您可以在异常的优势部分了解更多信息。


上一页: 异常
下一页: 捕获或指定要求