即使程序员抱有最好的愿望,而且计划工作做得非常周密,也无法避免代码出现错误。本节将介绍如何处理错误。
实际情况中可能出现的程序错误是很多的,但是它们基本上可以分为两种类型:一种是编译错误;另一种是运行期错误。编译错误是指使得编译器无法对代码进行编译的错误。如果一个过程中包含了编译错误,将不执行该过程,并且也不能向用户提供带有编译错误的运行期版本应用程序,大多数编译错误是句法错误。
当然,发现并处理错误的最佳时机是在程序的编译阶段。然而,编译器能够发现的只是类似语法错误等。运行期间可能出现的错误必须在运行期处理。
一个好的程序应该能够在错误引发的异常出现后及时进行处理,并根据情况终止或继续程序,不至于造成严重的后果,甚至引起系统崩溃。
Java程序不能正常执行可以分为两种情况:错误和异常。错误和异常是不同的两种情况。
错误(Error)通常是指程序本身存在的非法的情形,这些情形常常是因为代码存在的问题而引起的。而且,编程人员可以通过对程序进行更仔细的检查,尽可能地减少这些错误。从理论上讲,错误是可以避免的。
异常(Exception,又称为例外)则表示另外一种“非同寻常”的错误。这种错误通常是不可预测的。常见的异常情况包括内存不足、找不到所需的文件等。
许多错误可以引起异常,包括严重的硬件错误和一般的软件错误,例如硬盘损坏,试图访问越界的数据元素,试图打开并不存在的文件等。
异常是在程序的运行过程中所发生的异常事件,它中断代码的正常执行顺序。
Java的异常发生,通常由以下这些因素引起。
(1)Java虚拟机检测到了非正常的执行状态,这些状态可能由以下几种情况引起。
· 表达式的计算违反了Java语言的定义,例如整数被0除。
· 在载入或链接Java程序时出错。
· 超出了某些资源限制,例如使用了太多的内存。
(2)Java程序代码中的throw语句被执行。
(3)异步异常的发生。异步异常的原因可能有以下两点。
· Thread的stop( )方法被调用。
· Java虚拟机内部错误发生。