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


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


    当方法内发生错误时,该方法将创建一个对象并将其交给运行时系统。该对象称为异常对象(exception object,包含有关错误的信息,包括错误的类型和发生错误时程序的状态。创建异常对象并将其交给运行时系统称为抛出异常(throwing an exception
    方法抛出异常后,运行时系统会尝试查找一些东西去处理异常。用于处理异常的一组可能的“东西”是已调用的方法的有序列表,以到达发生错误的方法。方法列表称为调用堆栈(call stack(请参见 下图)。
    什么是异常 - 图1
    调用堆栈。
    运行时系统在调用堆栈中搜索一种方法,该方法包含可以处理异常的代码块。此代码块称为异常处理程序(exception handler。搜索从发生错误的方法开始,然后以与调用方法相反的顺序在调用堆栈中进行。找到合适的处理程序后,运行时系统会将异常传递给处理程序。如果抛出异常对象的类型与处理程序可以处理的类型匹配,则认为异常处理程序是适当的。
    据说选择的异常处理程序可以捕获异常(catch the exception。如果运行时系统详尽地搜索了调用堆栈上的所有方法,而没有找到合适的异常处理程序,如下 图所示,则运行时系统(因此,程序)将终止。
    什么是异常 - 图2
    在调用堆栈中搜索异常处理程序。
    与传统的错误管理技术相比,使用异常管理错误具有一些优势。您可以在“ 异常的优势”部分中了解更多信息 。