Java的异常处理机制(中)
根据javac(java编译器)对异常处理的要求,将异常类分为2类。
非检查异常(unchecked exception),因为程序员编写的代码有错误而导致的异常,这样的异常,在javac编译时无法被发现,如果想处理,可以使用try-catch-finally代码块来处理,若代码出现错误,代码块会抛出异常类型,让程序员有针对性的去寻找错误代码,缩减错误代码寻找范围。抛出的异常有,数组越界异常ArrayIndexOutOfBoundsException,一个整数除以零出现的异常ArithmeticException,空指针异常NullPointerException等等。
Java中另外一类异常是检查异常。
检查异常(checked Exception),这样的异常,通常是由于程序的运行环境导致的,因为程序员并不知道用户会将程序运行到什么环境中,所以,为了程序正常运行,系统强烈要求这样的异常必须有一套随时待命的处理代码,可以使用try-catch-finally代码块或者用throws手动抛出异常。这样的异常通常有IOException,SQLException,ClassNotFoundException等等。
需要明确的一个地方,就是,这两种异常,都是针对javac来说的。
接下来,我说一下,自定义异常。
自定义异常都属于检查异常(checked Exception),扩展自RuntimeException。
自定义异常,按照国际惯例,他应该包含如下几个构造函数,
1.无参构造
2.有String数据类型参数和Throwable参数,将这些参数传给父类构造函数
3.有Throwable参数,传给父类构造函数
下次,再介绍异常处理的详细过程与方法。