Exception

Exception

  1. Java中的异常分为两大类:
  • Checked exception (非Runtime Exception)
  • Unchecked exception(Runtime Exception)
  1. Java中所有的异常类都会直接或间接地继承自Exception
  2. RuntimeException类也是直接继承自Exception类,它叫做运行时异常,Java中所有的运行时异常都会直接或间接地继承自RuntimeException
  3. Java中凡是继承自Exception而不是继承自RuntimeException的类都是非运行时异常。
  4. 对于非运行时异常(checked exception),必须要对其进行处理,处理方式有两种:第一种是使用try… catch … finally 进行捕获;第二种是在调用该会产生异常的方法所在的方法声明throws Exception
  5. 对于运行时异常(runtime exception),我们可以不对其进行处理,也可以对其进行处理。推荐不对其进行处理。
  6. NullPointerException是空指针异常,出现该异常的原因在于某个引用为null,但你却调用了它的某个方法。这时就会出现该异常。
  7. 所谓自定义异常,通常就是定义了一个继承自Exception类的子类,那么这个类就是一个自定义异常类。通常情况下,我们都会直接继承自Exception类,一般不会继承某个运行时的异常类。
  8. 我们可以使用多个catch块来捕获异常,这时需要将父类型的catch块放到子类型的catch块之后,这样才能保证后续的catch可能被执行,否则子类型的catch将永远无法到达,Java编译器会报编译错误。如果多个catch块的异常类型是独立的,那么谁前谁后都是可以的。
  9. 如果try块中存在System.exit(0)语句,那么久不会执行finally块中的代码,因为System.exit(0)会终止当前运行的Java虚拟机,程序会在虚拟机终止前结束执行。