受检异常和非受检异常

目录

    Java异常体系:

      1. Java中所有异常的都继承于 java.lang.Throwable
      2. Throwable有两个直接的子类: Error、Exception
        Error: 通常表示底层和硬件相关的错误,和程序本身无关,不应该被捕获;
        Exception: 程序本身所抛出的异常,是由于程序不严谨所抛出的异常,可以捕获也可以不捕获;   
      3. Exception又衍生了两种子类: RuntimeException 非受检异常、 CheckException类型 如SqlException、IOException  
        RuntimeException 及其子类: 非受检异常 ,不需要检查的异常
    
        CheckException: 受检异常,在编写程序时无法提前预料到的异常,如数据库异常、文件读写异常,这些异常无法提前预料到,所以在编写程序时必须被捕获,当发生时做相应处理;{try/catch or throw}
                        排除了RuntimeException及其子类 的所有的Exception及其子类、都为受检异常   
                        受检异常必须被捕获,try/catch 或者 throws 处理,影响代码美观、增加代码复杂度  
    
      4. 当异常威胁到了程序的正确性、稳定性、可靠性时,要使用受检异常,不能转为非受检异常;
         其余情况使用非受检异常;
    

    原文地址:https://www.cnblogs.com/Qkxh320/p/batj_01_exception.html