美文网首页
Java基础(9)——异常处理

Java基础(9)——异常处理

作者: 让时间走12138 | 来源:发表于2020-04-13 20:54 被阅读0次

本节内容

1.编码时常见的几种异常

2.使用try-catch捕获异常

3.使用Exception拦截所有异常

4.抛出和自定义异常

当程序出现异常时,如果没有处理,那么程序就会直接终止运行(崩溃)。但是通过Java的异常处理机制,我们不仅可以发现异常,还可以执行后面的程序。这就是异常处理的功能。

一、编码时常见的几种异常

1.类型转换的错误,也就是当把一个值赋给另一个值时可能出现的错误ClassCastException
        String name =null;
        Object obj= new Object();
        name =(String)obj;
2.空指针异常,比如定义的字符串为空,然后直接调用了它的.length函数,就会出现 NullPointerException
     String name= null;
      name.length();
3.索引值越界异常,就是数组下标超过数组的长度。比如定义了一个数组,还没有赋值,就直接调用它的get函数,那么就会出现索引值越界异常IndexOutOfBoundsException
        ArrayList<String> lists=new ArrayList<>();
        lists.get(2);

二、使用try-catch捕获异常

1.try语句里面写具体的代码块,会捕获这个代码块里面的异常。当代码块里出现异常,在try里面,后面的代码就不会执行。所以不要在try里面包含太多的内容。例如,在以下代码块里面,System这个操作就不会被执行。
   try{
            lists.get(2);
            System.out.println("after");
        }
2.使用catch来捕获具体的一个异常,每个catch只能捕获一个异常,catch参数类型就为可能出现的异常,还可以调用printStackTrace()函数打印异常信息,也可以调用getMessage()函数查看异常错误。因为printStackTrace()会显示具体的出现错误的行数,所以一般用这个比较多。
      catch (IndexOutOfBoundsException e){
           // 打印异常信息
            e.printStackTrace();
          System.out.println(e.getMessage());
        }
平常我们调用try-catch函数时不用自己写这么麻烦,直接按住alt+enter键,然后选择 surround with try/catch即可,它会自动帮我们写好并且排布好。例如以下代码,就写好 FileReader fr = new FileReader(" ");之后按住键,然后进行上面的操作即可。
 try {
            FileReader fr = new FileReader(" ");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
注意:抛出异常时,尽量不要出现太多的嵌套(会导致代码结构和阅读性较差),不得不使用嵌套时,也不要大于2层。可以使用以下方式捕获异常,catch后面可以跟上很多个catch,需要捕获异常的代码都放在try里面。
当有多个catch时,有捕获的顺序,按照子类到父类的顺序去捕获。如果父类的异常在前面,就会拦截子类的catch。
    try {
            //代码块
        }catch (){
            //相应操作
        }catch (){
            //相应操作
        }
    }
3.finally语句块放在catch语句块后面,注意:Java只会释放在堆或者在栈上的资源,不会释放外部资源(比如硬盘)。然后在finally里面还可以嵌套try-catch语句。不管有没有异常,finally都会被执行。
4.finally使用场景:①需要释放文件、网络和数据资源 ②有些代码不管有没有出现异常都要被执行。以下为使用的一套规范
   try {
            lists.get(2);
        } catch (IndexOutOfBoundsException e) {
            // 打印异常信息
            e.printStackTrace();
            // System.out.println(e.getMessage());
        }finally {
            System.out.println("你好我成功了");
        }

三、使用Exception拦截所有异常

1.如果不太关心具体是什么异常,只是想处理一下异常,可以使用异常的父类来捕获。
catch (Exception e){
            
        }

四、抛出和自定义异常

1.使用throw抛出异常:某个方法完成某个功能,当执行时可能出现异常,这种异常需要调用者自己决定该如何处理,就使用throws抛出异常。也就是抛出异常后选择是否要进行处理。例如以下
class Test {
    public void show()throws IOException{
        FileReader fr=null;
        fr = new FileReader(" ");
        fr.read();
        ArrayList<String> lists = new ArrayList<>();
        String str= null;
        str=(String) new Object();
    }
}
在主类里面,创建一个Test类,就需要时才使用。
Test t =new Test();
        try{
            t.show();
        } catch (IOException e) {
            e.printStackTrace();
        }
2.自定义异常:自己创建一个类,继承于Exception即可
class loginException extends Exception{
     public loginException(){
     }
     public  loginException(String s){
         super(s);
     }
}
然后写一个方法继承于这个异常即可
public void login(String name,String pwd) throws loginException {
        if(name.startsWith("1")){
          //自己定义一个异常
       throw  new loginException("用户名不能以1开头");
        }
    }
在主类里面,通过之前创建的对象t调用 login方法,然后创建try-catch即可
        try {
            t.login("1jack","123");
        } catch (loginException e) {
            e.printStackTrace();
        }
欧克,以上就是今天的全部内容,再见。

相关文章

  • Java基础(9)——异常处理

    本节内容1.编码时常见的几种异常2.使用try-catch捕获异常3.使用Exception拦截所有异常4.抛出和...

  • Java基础之异常

    Java基础之异常 目录 异常简单介绍 ThrowableErrorException 异常分类 如何处理异常异常...

  • Java基础系列-Exception异常处理

    原创文章,转载请标注出处:《Java基础系列-Exception异常处理》 一、概述 Java代码中的异常处理是非...

  • 在Alibaba广受喜爱的“Java突击宝典”简直太牛了

    0-1年:夯实基础 1.Java基础(Java异常分类及处理+Java反射+Java注解+Java内部类+Java...

  • Java基础之异常处理

    Java基础之异常处理 在Java程序中,异常分为编译异常以及运行时异常 编译异常:程序在编译期间就出现的异常,必...

  • Exception

    Java 中 9 个处理 Exception 的最佳实践 Java 中的异常和处理详解 如何优雅的设计 Java ...

  • Java基础-异常处理

    捕获异常 try-catch try捕获异常后,catch中要有针对问题的处理,否则就是隐藏异常 catch可以是...

  • Java基础——异常处理

    异常,说起来,就是一张图,5个关键字。 一张图, 5个关键字 try catch finally throw th...

  • 【Java基础】异常处理

    一、异常的概念 Java中的所有异常都可以用一个异常类来表示,不同类型的异常对应不同的子类异常(此处的异常包含er...

  • Java基础——异常处理

    异常:程序出现了不正常的情况 举例: 今天天气很好,班长出去旅游。骑着偷来的摩拜。去火炉山接近大自然,吸收新鲜空气...

网友评论

      本文标题:Java基础(9)——异常处理

      本文链接:https://www.haomeiwen.com/subject/rboumhtx.html