Object、异常

java.lang.Object 类层次的根类 所有类的超类

    String方法
        String toString() 返回对象的字符串表现形式 类型 + @ + 哈希值(地址值)在父类Object中打印的是地址值,子类可以重写此方法,不再打印地址值而是打印属性值
    Object类
        equals方法
              public boolean equals(Object obj) 比较两个引用类型的方法 在Object类中比较的是对象的地址值
              子类可以重写此方法 比较属性值
        ==比较引用类型 任何时刻比较的都是地址值
              equals方法内部使用的就是==比较运算符

异常

    概念:
        在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。
    分类:
        异常的根类是Throwable,其下有两个子类:Error与Exception,平常所说的异常指Exception。
        Throwable (1),Error (2),Exception (2.1)RuntimeException
      • 严重错误Error,无法通过处理的错误

      • 编译时异常Exception,编译时无法编译通过。如日期格式化异常
      • 运行时异常RuntimeException,是Exception的子类,运行时可能会报错,可以不处理。如数学异常

编译时异常
    Exception 编译时就报错 必须的处理
运行时异常
     RuntimeException 编译时不报错,运行时才报错 可以处理 也可以不处理 推荐不处理
     因为 一般出现运行时异常 都是代码有问题 需要修改源代码
异常与错误的区别
      异常:感冒 发烧 阑尾炎 可以处理
  错误:

      癌症晚期 艾滋 非典 不能处理 只能修改代码

处理方式:

  第一种向上抛-->
    
throw 关键字
        一般定义在方法内 throw 异常的对象。
        异常的第一种处理方式
        声明式异常处理
    throws 关键字
        一般定义在方法的声明上 throws 异常的类名
    注意事项
        throws 后 可以跟多个异常 多个异常以,分开
        也可以抛出多个异常的共同父类

  第二种异常处理方式
    try{
      可能出现异常的代码
      }catch(异常的类名 变量名){
      打印异常信息
      }finally{
      必须执行的代码
      }
  注意:多catch处理异常 <--注意逻辑关系--->
      try{
      }catch(){
      }catch(){
      }
    多catch处理异常注意事项
    多个异常在捕获时有没有顺序
    如果异常之间没有直接的继承关系 没有顺序
    ClassNotFoundException extends ReflectiveOperationException extends Exception
    FileNotFoundException extends IOException extends Exception
    如果有直接的继承关系 有顺序 大的往后放 小的往前放

逻辑关系
  异常后方法重写的注意事项
    1、如果父类方法抛异常
      子类可以不抛异常
        子类也可以抛异常 但是子类方法抛的异常 不能大于父类方法抛的异常 (只能抛出父类异常的子异常)
    2、如果父类方法不抛异常
      子类也不能抛异常 如果子类方法中有异常 只能try catch处理
      第三种<带有最终>
      try{
      }catch(){
      }finally{
      必须执行的代码 无论是否有异常 无论是否捕获到异常 都得执行
      }

Throwable的获取异常信息的方法

      String getMessage() 返回的是字符串内容 例如 "文件没找到"
      String toString() 类名+字符串 例如 java.io.FileNotFoundException: 文件没找到
      void printStackTrace() 打印 类名 字符串信息 位置 等等 并且是红色字体 推荐

自定义异常
      1.定义异常类 继承Exception 注意继承Exception就是编译时异常
      2.添加俩个构造方法 一个空参一个带参

自定义异常使用
      JDK提供的异常怎么使用 自定义异常就怎么使用
      JDK提供的异常怎么处理 自定义异常就怎么处理

猜你喜欢

转载自www.cnblogs.com/JunQiang-Ma/p/9959027.html