Exception异常 和 RuntimeException异常

1、什么是异常:

  程序开发和运行过程中会出现编译错误和运行错误。编译错误容易被发现并排除,而运行错误(逻辑错误和异常)很难预料。因此为了程序的稳定性和可靠性,就需要对程序异常处理和保护。
  异常( Exception )正常程序流程所不能处理或者没有处理的异常情况或异常事件
 
2、异常的分类:
  1):根据异常在编译时是否被检测来分,异常可以分为两类: 受检异常(CheckedException)非受检异常(UncheckedException)
   2):非受检异常不能在编译时检测到。 非受检异常包括运行时异常(RuntimeException)错误(Error)
      错误指的是致命性错误,常常无法处理。
   3):根据异常的严重性,可以分为 可以处理的异常错误异常
      异常以类的形式封装。程序可以处理的异常对应的类是 java.lang.Exception及其子类。
       运行时异对应的类是 java.lang.RuntimeException
       错误异常对应的类是 java.lang.Error
 
3、异常相关类的继承关系:
java.lang.Object
  |
  +——java.lang.Throwable
      |
      +——java.lang.Error
      |
      +——java.lang.Exception
          |
          +——java.io.IOException
          |
          +——java.lang.RuntimeException
              |
              +——java.lang.ArithmeticException
              |
              +——java.lang.ArrayIndexOutOfBoundsException
              |
              +——java.lang.IllegalArgumentException
              |
              +——java.lang.NumberFormatException

 4、异常的产生:

  •  可以由Java虚拟机在执行程序时自动发现并产生异常。
  •  也可以在程序中显式地生成异常,这种方法称为抛出异常(ThrowExceptions)

5、Exception异常 和 RuntimeException异常两者的区别是:

  • Exception :受检查的异常(编译错误),这种异常是强制我们catch或throw的异常。你遇到这种异常必须进行catch或throw,如果不处理,编译器会报错。比如:IOException。

  • RuntimeException:运行时异常(运行错误),这种异常我们不需要处理,完全由虚拟机接管。比如我们常见的NullPointerException,我们在写程序时不会进行catch或throw。

RuntimeException也是继承自Exception的,只是虚拟机对这两种异常进行了区分。
 
 
 

猜你喜欢

转载自www.cnblogs.com/xxhxs-21/p/12716184.html