java中对程序的运行可能出现的问题有两种类型:
1、错误:
所有的Error都不是我们程序员能够解决的问题。
2、异常
异常分两类:
第一种就是“检查时异常”,检查异常也称之为一般异常,这些异常通常在编译期间需要由程序员做出处理,否则会出现编译错误,并且这种异常对写代码非常不友好。就是一个方法内部到写try catch, 要么方法名后面跟着 throws。而且方法调用的这个方法也要跟着抛异常,也就是throws。这类异常是Java特有的。常见的检查时异常:
java.io.FileNotFoundException
java.lang.ClassNotFoundException
java.io.IOException
java.lang.NoSuchMethodException
第二种异常,叫“运行时异常”所谓的运行时异常,即在程序编译期间不需要做任何处理,编译器能够正常编译通过,但是在运行期间由于一些人 为原因导致的异常。运行时异常中所有的类都是从java.lang.RuntimeException继承过来
常见的运行时异常:
java.lang.ArithmeticException
java.lang.NullPointerException
java.lang.ClassCastException
java.lang.ArrayIndexOutOfBoundsException
这是其他语言和Java都有的。只会在运行时抛出,在写代码阶段可以不用try catch。
java中所有的异常都是从java.lang.Exception继承而来
异常抛出即将程序编译或者运行期间(主要是检查异常,运行时异常不用处理)出现的异常通过方法向外抛,最终 可以抛出到main方法由java虚拟机解决(JVM会将异常的追溯信息在标准错误输出流输出),所以当你传的参数有问题,或者路径不对,,那个方法又没throws标识,那么就会抛出 运行时异常。
实际上只要是Java的原生方法又要求传路径参数的必然有throws标识。而以后基本上的异常都要自己处理,尽量避免方法后面有throws标识符。