Java中的异常处理、泛型!图文讲解

 

1.异常: 非正常的情况,改变程序的执行流程

  • 堆栈提示顺序

Throwable

  • Error 错误用代码处理不了
  • Exception异常 用代码可以处理运行时异常:RuntimeException 类和它的子类。编译可以通过,在运行期使程序中断了。
    • 非运行时异常(手检异常):
    • Exception类和它的部分子类。
    • 编译期 出现的问题 ,必须处理。

            

*空指针就是没有对象!**空指针就是没有对象!**空指针就是没有对象!*

2.异常处理方式:

  • try-catch
  • 语法:

Try{

    可以会出现异常的代码

}catch(异常类类型 对象名)}

处理对象

}

  • 情况:
    • 没有异常。Try 执行了,catch没执行
    • 异常类型匹配。Try执行了,catch也执行了。
    • 异常类型不匹配。Try也执行了,catch也执行了。
  • try- catch-finally

Try{

   会出现异常的代码;

   }catch{}

                      

 

  • Throw抛异常:之间抛异常 如果 抛出的 运行时异常,可以不用throws声明
  • 自定义异常
    • 调试:设置断点;
      • 单步运行;
      • F6 单步跳过;
      • F5单步跳入;
  • 发现和解决问题。

方法重写:子类,实例方法,名相同。参数一致,返回值类型一致,访问权限不能比父类更严格,异常范围不能 比父类更大。

  • 类型参数:用一个大写字母
    •          T ->Type
    •          K –>Key
    •          V->Value
    •          E->Element
  • 可以定义多个类型参数
  • 原生类型 raw tyoe
  • 一个类型的后边没有指定具体这样的泛型类型 称为原生类。

3.泛型

概念:参数化类型

类型参数:

  • 定义时:形式类型参数
  • 应用时:实际类型参数:(必须是引用类型)
    • 参数化类型:类型<实际类型参数>
    • 好处:
      • 在编译期进行类型检查;
      • 类型不确定。

定义泛型类:class类名<类型参数>{

}

  • 通配符:?   无界通配符   匹配   任意类型

           ?  extends上限类 匹配   上限类 和下限的子类

           ?   super 下限类 匹配    下限类 和 下限类的父类

  • 类型参数 和 通配符的区别:
    • 类型参数 可以表示一中了类型,泛型类型;通配符不能表示一种类型。
    • 类型参数 只能指定上限和下限;
    • 类型参数 可以指定多个上限;统配符,不能指定多个上限。
  • 泛型构造器
  •   泛型方法
  • 擦除原则:①参数化类型。擦除后为 原生类型
  •           Point3<String> p; ->Point3 p;
  •           ②类型参数:1)无界类型参数,擦除后为Object class Point<T>{}->Point<Object>{类体部分都用Object}变成Objuect x;
  •           2)有一个上限的类型参数,用上限来替换:<T extends A ->A
  •           3)有多个上限,由第一个上限来替换;<T extenfs A & B>  ->A

 

 

猜你喜欢

转载自blog.csdn.net/qq_42246689/article/details/83445857
今日推荐