您的位置: 网站首页 > 程序开发 > Java程序设计 > 第8章 异常处理 > 【8.2 程序错误与处理】

8.2 程序错误与处理

 

8.2  程序错误与处理

即使程序员抱有最好的愿望,而且计划工作做得非常周密,也无法避免代码出现错误。本节将介绍如何处理错误。

8.2.1  程序错误、发现时刻及错误处理原则

实际情况中可能出现的程序错误是很多的,但是它们基本上可以分为两种类型:一种是编译错误;另一种是运行期错误。编译错误是指使得编译器无法对代码进行编译的错误。如果一个过程中包含了编译错误,将不执行该过程,并且也不能向用户提供带有编译错误的运行期版本应用程序,大多数编译错误是句法错误。

当然,发现并处理错误的最佳时机是在程序的编译阶段。然而,编译器能够发现的只是类似语法错误等。运行期间可能出现的错误必须在运行期处理。

一个好的程序应该能够在错误引发的异常出现后及时进行处理,并根据情况终止或继续程序,不至于造成严重的后果,甚至引起系统崩溃。

8.2.2  Java的错误和异常

Java程序不能正常执行可以分为两种情况:错误和异常。错误和异常是不同的两种情况。

错误(Error)通常是指程序本身存在的非法的情形,这些情形常常是因为代码存在的问题而引起的。而且,编程人员可以通过对程序进行更仔细的检查,尽可能地减少这些错误。从理论上讲,错误是可以避免的。

异常(Exception,又称为例外)则表示另外一种“非同寻常”的错误。这种错误通常是不可预测的。常见的异常情况包括内存不足、找不到所需的文件等。

许多错误可以引起异常,包括严重的硬件错误和一般的软件错误,例如硬盘损坏,试图访问越界的数据元素,试图打开并不存在的文件等。

异常是在程序的运行过程中所发生的异常事件,它中断代码的正常执行顺序。

Java的异常发生,通常由以下这些因素引起。

1Java虚拟机检测到了非正常的执行状态,这些状态可能由以下几种情况引起。

·    表达式的计算违反了Java语言的定义,例如整数被0除。

·    在载入或链接Java程序时出错。

·    超出了某些资源限制,例如使用了太多的内存。

2Java程序代码中的throw语句被执行。

3)异步异常的发生。异步异常的原因可能有以下两点。

·    Threadstop( )方法被调用。

·    Java虚拟机内部错误发生。