• 异常


    1. 异常分为两大类:

        1). Checked exception (非Runtime Exception) // 编译期会报错

        2). Unchecked exception (Runtime Exception) // 编译期不会报错

    2. Java中的所有异常都会直接或间接的继承自Exception

    3. RuntimeException类也是直接继承自Exception类,它叫做运行时异常,Java中所有的运行时异常都会直接或间接地继承自RuntimeException。

    4. Java中凡是继承自Exception而不是继承自RuntimeException的类都是非运行时异常。

    5. 异常处理的一般结构是:
        try{

        }
        catch(Exception e){

        }
        finally{

        }

        无论程序是否出现异常,finally 块中的代码都是会被执行的。

    6. 对于非运行时异常(checked exception) ,必须要对其进行处理,处理方式有两种:

        第一种是使用 try.. catch…finally 进行捕获;

        第二种是在调用该会产生异常的方法所在的方法声明 throws Exception

    7. 对于运行时异常(runtime exception) ,我们可以不对其进行处理,也可以对其进行处理。推荐不对其进行处理。

    8. 所谓自定义异常, 通常就是定义了一个继承自 Exception 类的子类,那么这个类就是一个自定义异常类。通常情况下,我们都会直接继承

        自 Exception 类,一般不会继承某个运行时的异常类。

    9. 我们可以使用多个 catch 块来捕获异常,这时需要将父类型的 catch 块放到子类型的catch 块之后,这样才能保证后续的catch可能被执行,

        否则子类型的 catch将永远无法到达,Java 编译器会报编译错误;如果多个 catch 块的异常类型是独立的(MyException, MyException2),

        那么谁前谁后都是可以的。

    10. 如果 try 块中存在 return 语句,那么首先也需要将 finally 块中的代码执行完毕,然后方法再返回。

    11. 如果 try 块中存在 System.exit(0)语句,那么就不会执行 finally 块中的代码,因为System.exit(0)会终止当前运行的Java虚拟机,

          程序会在虚拟机终止前结束执行。

    12. 自定义异常是为了根据我们的意志返回一些制定的信息,方便我们及时准确的发现问题所在。

          同时避免大量无用日志信息的输出,导致磁盘写满。

     

     

     

  • 相关阅读:
    Flink:What is stream processing?
    Flink1.10.1集成Hadoop3.0.0源码编译实战
    2003-Can't connect to Mysql on '主机名'(10061)
    Mybatis:Tag name expected
    谷歌浏览器安装json格式化插件
    kafka最佳实践:Kafka Best Practices
    kafka生产者性能监控:Monitor Kafka Producer for Performance
    kafka2.3性能测试:Kafka 2.3 Performance testing
    Tomcat 8 Invalid character found in the request target. The valid characters are defined in RFC 3986
    Springboot集成Mybatis、JPA
  • 原文地址:https://www.cnblogs.com/Jtianlin/p/4190122.html
Copyright © 2020-2023  润新知