异常的体系
Java异常体系结构呈树状。 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。
Error:
该类代表错误,指程序无法恢复的异常情况。对于所有错误类型以及其子类,都不要求程序进行处理。常见的Error类例如内存溢出StackOverflowError等。
Exception:
该类代表异常,指程序有可能恢复的异常情况。该类就是整个Java语言异常类体系中的父类。使用该类,可以代表所有异常的情况。该异常又可以分为两类:runtimeException和非运行时异常。
runtimeException:
该类异常属于程序运行时异常,也就是由于程序自身的问题导致产生的异常,例如数组下标越界异常ArrayIndexOutOfBoundsException等。 该类异常在语法上不强制程序员必须处理,即使不处理这样的异常也不会出现语法错误。
非运行时异常:该类异常属于程序外部的问题引起的异常,也就是由于程序运行时某些外部问题导致产生的异常,例如文件不存在异常FileNotFoundException等。 从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。
异常捕捉:
java捕捉异常通常用try,catch,finally。一个try可以有多个catch也可以没有catch.finally也可有可无,但当没有catch时finally必须得有。
异常的常见例子:
有内存分配不足、数组下标越界、运算溢出或除数为零。