什么是异常?

exception一词是“exceptional event”这一短语的简写。

定义:异常是在程序执行期间发生的事件,它会破坏程序指令的正常流程。

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

在方法抛出异常后,运行时系统会尝试查找处理它的内容,处理异常的可能的“内容”的集合是已被调用以获取发生错误的方法的有序方法列表,方法列表称为调用堆栈(请参见下图)。

exceptions-callstack.gif

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

所选择的异常处理程序被称为捕获异常,如果运行时系统穷举搜索调用堆栈上的所有方法而没有找到适当的异常处理程序,如下图所示,则运行时系统(以及程序)终止。

exceptions-errorOccurs.gif

使用异常来管理错误与传统的错误管理技术相比具有一些优势,你可以在“异常优势”部分了解更多信息。


上一篇:管理源文件和类文件
下一篇:捕获或指定要求

博弈
2.5k 声望1.5k 粉丝

态度决定一切