2019-08-17(Java 泛型类与异常解决)

  • 时间:2019-08-22 03:12 作者:Android__开发 来源:Android__开发 阅读:435
  • 扫一扫,手机访问
摘要:1.知识点:1.泛型类2.异常解决2.知识点的运用:1.在实际运用中,用到泛型的地方并不多,所以在这里只详情泛型类:泛型类的一般格式://泛型标识:可以随意写任意标识号,标识指定的泛型的类型class 类名称 泛型标识 {//泛型变量 private 泛型标识 a; //泛型方法public

1.知识点:

1.泛型类
2.异常解决

2.知识点的运用:

1.在实际运用中,用到泛型的地方并不多,所以在这里只详情泛型类:

泛型类的一般格式:

//泛型标识:可以随意写任意标识号,标识指定的泛型的类型class 类名称 <泛型标识>{//泛型变量  private 泛型标识  a; //泛型方法public 返回值  函数名 (参数类型 形参名,泛型标识 形参名){        //函数体    }  }

例:

public class MyClass {    public static void main(String[] args){        GenericTest<Integer> genericTest = new GenericTest<>();        genericTest.test(10,10);    }}class GenericTest<T>{    int age;    T a1;    T a2;    public void test(T a1, T a2){        this.a1 = a1;        this.a2 = a2;        System.out.println(a1);        System.out.println(a1.equals(a2));    }}
2.异常解决:
  • 异常类及其子类的框架:


    image.png
  • 异常的定义:异常是程序运行过程过程出现的错误,在Java中用类来形容,用对象来表示具体的异常。Java将其区分为Error与Exception,Error是程序无力解决的错误,Exception是程序可以解决的错误。异常解决是为了程序的健壮性。
  • 异常解决关键字:
    1. try语句 :用大括号{}指定了一段代码,该段代码可能会抛弃一个或者多个例外。
    2. catch语句:catch语句的参数相似于方法的公告,包括一个例外类型和一个例外对象。例外类型指明了catch语句所解决的例外类型,例外对象则由运行时系统在try所指定的代码块中生成并被捕获,大括号中包含对象的解决,其中可以调用对象的方法。
    3. finally语句:try所限定的代码中,当抛弃一个例外时,其后的代码不会被执行。通过finally语句可以指定一块代码。无论什么情况,finally所指定的代码都要被执行,它提供了统一的出口。通常在finally语句中可以进行资源的清理工作,如关闭、打开文件等。
    4. throws语句:throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。
    5. throw语句:throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后立即终止,它后面的语句不执行。
  • 异常链:(Throwable类中的常用方法)
  1. getCause():返回抛出异常的起因。假如 cause 不存在或者未知,则返回 null。
  2. getMessage():返回异常的消息信息。
  3. printStackTrace():对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的异常链顾名思义就是将异常
    发生的起因一个传一个串起来,即把底层的异常信息传给上层,这样逐层抛出。
3 . 异常解决的实际运用:
  • 常规模式:
        FileReader reader = null;        try {            System.out.println("Hello");            reader = new FileReader("re");                    }catch (FileNotFoundException e) {            e.printStackTrace();        }finally {            try{                reader.close();            } catch (IOException e) {                e.printStackTrace();            }        }
  • try后面加括号:
        //try括号中只能增加可以关闭的对象        //实现了Closeable接口的对象,假如出现异常,系统自己关闭这个资源        try (FileReader reader1 = new FileReader("rewrwr")){            //使用对象        }catch (IOException e){            e.printStackTrace();        }
  • 写一个方法,在方法中抛出异常:
        try {            TException.test();        }catch (FileNotFoundException e){            e.printStackTrace();        }        try {            TException.test3();        }catch (ykException e){            System.out.println(e.getMessage());        }//自己设置类:class TException{    public static void test() throws  FileNotFoundException,NullPointerException{        FileReader reader = new FileReader("fsf");    }    //三:    public static void test2()throws IllegalAccessException {        if (2 > 1){            throw new IllegalAccessException();        }    }}
  • 自己设置异常:
        try {            TException.test3();        }catch (ykException e){            System.out.println(e.getMessage());        }class TException{    public static void test3() throws ykException {        StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();        StackTraceElement e = stackTrace[2];        String detail = e.getFileName()+"->"+e.getMethodName()+"->"+e.getLineNumber();        throw new ykException( "自己的异常类:无所作为"+detail);    }}//自己设置异常class ykException extends java.lang.Exception{    //提供一个无惨构造方法    public ykException (){}    //提供一个有惨构造方法    public ykException(String desc){        super(desc);    }}
4.部分总结:
  • 异常解决格式:
try{//执行的代码//一旦出现异常,系统自动为我们创立异常类,并输出 }catch(NullPointerException  e){//假如需要自己解决异常,就catch }catch(IOExcepton e){ //假如有多个异常,catch的顺序是从小到大}catch(Exception e){}finally{ //资源回收:网络连接 数据库连接 文件流 I/O流// 不关也没有异常,finally都会被执行}
  • 从出现异常开始,后面的代码将不会执行,改为执行catch的代码 ,所以不要抓太多的异常
  • 第二种异常解决方式:使用throws,交给外部解决
  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】阿里云 centos 云盘扩容命令(2023-01-10 16:35)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
手机二维码手机访问领取大礼包
返回顶部