学习目标

  • 异常
    • 异常的介绍及分类
    • 异常的处理方式
    • 自定义异常
  • 日志
    • 日志优势
    • 日志使用
    • 日志配置
  • 综合案例-购票系统

    • 客户商家电影操作

      1. 日志


      1.1 日志框架能解决什么问题 ?

      导入Logback日志技术到项目中,用于纪录系统的日志信息

      2.2 日志框架使用的步骤 ?

      ①:在项目下新建文件夹lib,导入Logback的相关jar包到该文件夹下,并添加到项目依赖库中去。
      ②:将Logback的核心配置文件logback.xml直接拷贝到src目录下(必须是src下)。
      ③:在代码中获取日志的对象
      public static final Logger LOGGER = LoggerFactory.getLogger(“哪一个类的日志”);
      ④:使用日志对象LOGGER调用其方法输出不能的日志信息

      2. 异常


      2.1 什么是异常 ? 异常的分类 ?

  • 异常就是程序出现了不正常情况 , 程序在执行过程中 , 数据导致程序不正常 , 最终导致了JVM的非正常停止

  • 分类:

    • 编译时期异常
      • 非RuntimeException及其子类 : 编译时异常就是在编译的时候可能出现的异常, 编译时期必须处理,否则程序无法执行
    • 运行时期异常
      • RuntimeException及其子类 : 运行时异常就是在运行时可能出现的异常, 在编译时期不需要处理

        2.2 异常处理方式有哪些 ? 每一种方式应用场景 ?

  • JVM处理异常方式

    • 把异常的类型 , 原因 , 位置打印在控制台
    • 程序停止执行
  • 手动处理异常方式

    • 声明异常(throws)
      • 格式:修饰符 返回值类型 方法名(参数列表) throws 异常类型1 , 异常的类型2… { … }
      • 作用:
        • 表示调用当前的方法可能会出现某些异常,使用时需要注意哦!
        • 如果当前方法没有出现任何异常, 那么代码会正常执行
        • 如果当前方法中出现了异常 , 会把异常交给本方法调用者处理(甩锅)
    • 抛出异常(throw)
      • 格式:修饰符 返回值类型 方法名(参数列表) {throw new 异常对象(); }
      • 作用:
        • 在方法中,当传递的参数有误,没有继续运行下去的意义了,则采取抛出处理,表示让该方法结束运行。
        • 告诉调用者方法中出现的问题原因
    • 捕获异常(try catch)

      • 格式:
        1. try {
        2. try中存放可能会出现问题的代码
        3. 1.代码...
        4. 2.代码...
        5. } catch (异常类型 变量名) {
        6. 4.处理异常方案
        7. 打印异常,获取异常原因记录日志......)
        8. }

        2.3 自定义异常的优势 , 如何自定义异常 ?

        优势:

        可以实现JDK中的异常类型,不能满足实际的业务需要,让程序的提示报错更加的见名知意

        如何实现:

    • 定义异常类

    • 写继承关系
    • 空参构造
    • 带参构造

      1. public class AgeOutBoundsException extends RuntimeException { // 运行时期异常
      2. public AgeOutBoundsException() {
      3. }
      4. public AgeOutBoundsException(String message) {
      5. super(message);
      6. }
      7. }

      注意事项:

  • 如果要自定义编译时异常,就继承Exception

  • 如果要自定义运行时异常,就继承RuntimeException