Java异常机制

  1. Java把异常作为一种类,当做对象来处理。所有异常类的基类是Throwable类。两大子类分别是Error和Exception。这些异常类可以分为三种类型:错误、受检异常、运行时异常。
  • 错误由JVM抛出,用Error类表示。Error类描述的是内部的系统错误,例如Java虚拟机崩溃、内存溢出等。这种情况仅凭程序自身是无法处理的,在程序中也不会对Error异常进行捕捉和抛出。
  • 异常(Exception)又分为RuntimeException(运行时异常)和CheckedException(受检异常),两者区别如下:
    • RuntimeException:程序运行过程中才出现和被检查出来的错误。例如:类型错误转换,数组下标访问越界,空指针异常、找不到指定类等等。
    • CheckedException:来自于Exception且非运行时异常都是检查异常,编译器会强制检查并通过try-catch块来对其捕获,或者在方法头声明该异常进一步交给调用者处理。
    • 两种异常的处理原则:

      运行时异常:说明代码逻辑写的有问题,是bug、铁定了是程序员的锅,应该找到对应代码并动手改掉,而不是对其捕获;
      受检异常:当遵循谁知情谁处理,谁负责谁处理,谁导致谁处理,所谓处理即先对其就地捕获,再做进一步本地化处理。

原文地址:https://www.cnblogs.com/JaxYoun/p/12335195.html