Java编程那些事儿系列文章(全集目录)
第十章 异常处理
在实际的项目中,程序执行时经常会出现一些意外的情况,这些意外的情况会导致程序出错或者崩溃,从而影响程序的正常执行,如果不能很好的处理这些意外情况,将使项目的稳定性不强。
对于这些程序执行时出现的意外情况,在Java语言中被称作异常(Exception),出现异常时相关的处理则称之为异常处理。
异常处理是Java语言中的一种机制,恰当使用异常处理可以使整个项目更加稳定,也使项目中正常的逻辑代码和错误处理的代码实现分离,便于代码的阅读和维护。
本章就将深入介绍Java语言中的异常处理机制。
10.1 概述
在实际的项目中,并不是所有的情况都是那样理想,例如不可能有使用不尽的内存,也不可能有熟练的软件使用人员等,这样就会导致项目在执行时会出现各种各样不可预料的情况,这样的情况如果处理不好,则会导致程序崩溃或者中止执行,例如Windows操作系统的蓝屏。
在一个完善的项目,这些不可预料的情况必须得到正确的处理,才能使整个项目具有比较强的稳定性,这才是符合要求的项目。为了实现这种处理结构,在Java语言中新增了一套完善的语法,通过处理这些情况来增强项目的稳定性,这套语法就是异常处理的语法。
这些程序执行时出现的不可预料的情况,也就是执行时的意外情况,在Java语言的语法中被称作异常。
其实简单的进行异常处理很多程序设计语言都是可以实现的,就是根据情况判断,不同的情况作出不同的处理。Java语言的异常处理机制最大的优势之一就是可以将异常情况在方法调用中进行传递,通过传递可以将异常情况传递到合适的位置再进行处理。这种机制就类似于现实中你发现了火灾,你一个人是无法扑灭大火的,那么你就将这种异常情况传递给119,然后119再将这个情况传递给附近的消防队,消防队及时赶到进行灭火。使用这种处理机制,使得Java语言的异常处理更加灵活。
另外,使用异常处理机制,可以在源代码级别将正常执行的逻辑代码,和进行异常情况处理的代码相分离,更加便于代码的阅读。
异常处理机制是Java语法的一个特色功能,通过恰当的使用该机制,可以使得Java语言编写的项目更加稳定。
当然,异常处理机制也存在一些弊端,例如使用异常处理将降低程序的执行效率,增加语法的复杂度等。
下面简单的看一个执行时将出现异常的代码:
/**
* 异常出现示例 */ public class ExceptionDemo { public static void main(String[] args) { String s = null; int len = s.length(); } } 在运行该程序时,在控制台的输出结果如下: Exception in thread "main" java.lang.NullPointerException at ExceptionDemo.main(ExceptionDemo.java:7)
从这个程序执行时的输出可以看出,提示在main线程(thread)中出现了异常,异常的类型为java.lang.NullPointerException,异常出现在ExceptionDemo的main方法中,出现异常的代码在ExceptionDemo.java代码中的第7行。在JDK文档查阅java.lang包,在异常部分可以查阅到关于NullPointerException的详细说明。这里出现该异常是因为对象s没有创建造成的。将程序中的String s = null;代码替换为String s = “abc”;即可避免出现该异常。
在程序执行中,会出现各种各样的异常情况,这些异常情况在Java体系将代表常见的异常情况,这就是下面的异常类体系中需要介绍的知识。