异常是指在程序运行过程中由代码产生的一种错误。在不支持异常处理的程序设计语言中,每一个运行时错误必须由程序员手动控制。java程序员为了避免这样的异常处理机制把他在处理问题的过程中,把程序运行时候的错误管理带到了面向对象的世界中。
**1.错误与异常**
程序的错误按照不同的性质,可以分为不同的种类,有些系统能够在编译时发现,有些系统不能发现。当程序不能正常运行或运行结果不正确时,表示程序错误,按照程序的性质可将程序错误分为,语法错,语义错,逻辑错。
语法错误是由于违反程序设计语言的语法规则而产生的错误。
语义错误如输出数据格式错误等,这样的错误称为语义错误。
如果程序编译通过,也可以运行,但运行结果与预期的结果不同,这样的错误称为逻辑错误。
程序运行时出的错可分为两类:错误和异常;
错误是指在运行的过程中硬件或者操作系统带来的错误。
异常是指在硬件和操作系统运行正常时,程序运行时候的错误;
2.java语言的异常处理机制
异常是指程序在运行过程中发生由于算法考虑不周或软件设计错误等导致的程序异常事件。在一个正在运行的程序中如果发生了异常,则会产生代表该异常的一个“异常对象”,并把它交给操作系统,再有相应的系统寻找代码,来解决这个异常。
异常抛出后,运行系统从生成异常对象的代码开始,沿方法的调动栈逐层回溯查找,直到找到包含相应异常处理的方法,并把该异常对象提交给该方法为止。这个过程叫做捕获异常。
java语言中定义了很多异常类,每个异常类都代表了一种运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。
异常的本质是一个在程序执行期间发生的事件,这个事件将终端程序的正常运行。
简单的说:发现异常的代码可以“抛出”一个异常,运行系统“捕获”该异常,并交由程序员编写的相应代码进行异常处理。