0
点赞
收藏
分享

微信扫一扫

19.异常处理(新年快乐啊)

成义随笔 2022-02-01 阅读 70
java

1.抛出异常throw

断言略

对可恢复的错误不能使用断言,而应该抛出异常;

断言很少被使用,更好的方法是编写单元测试。

1.1 概念

当使用方法时,需要告诉调用者出错的信息。我们这时候可以使用throw

1.2举例

需求:编写一个通过数组下标获取数组,如果下标越界,在控制台打印“亲,下标越界了”,如果数组为空,在控制台打印“亲,你的数组为空!!!”       ;

  public static int getIndexArray( int[] arr,int index) {

        if(arr == null) {

            //

            throw new NullPointerException("亲,你的数组为空了!!!");

        }

        if( index < 0 || index > (arr.length-1)  ) {

            throw new ArrayIndexOutOfBoundsException("亲,你的下标越界了!!!");

        }

        return arr[index];

    }

执行:

  public static void main(String[] args) throws ParseException {

        int[] arr = null;

        int i = getIndexArray(arr,2);

}

结果:

    public static void main(String[] args) throws ParseException {

        int[] arr = {1,2,3};

        int i = getIndexArray(arr,3);

}

2. 捕获异常try…catch...finally(可选择)

throws描述:

如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显式地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。

在方法声明中用 throws 子句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。

Throws 举例:

需求: 定义读取log.txt,如果文件不存在就抛给调用者,让调用者处理文件不存在的异常。

  public static void read(String fileName) throws FileNotFoundException {

        if(!"log.txt".equals(fileName)) {

            throw new FileNotFoundException();

        }

    }

调用:

    public static void main(String[] args) throws FileNotFoundException {

        read("111");

    }

举例:

Exception in thread "main" java.io.FileNotFoundException

    at cn.hzat.Demo1.read(Demo1.java:24)

    at cn.hzat.Demo1.main(Demo1.java:20)

注意字符串判断!!

  //需求: 定义读取log.txt,如果文件不存在就抛给调用者,让调用者处理文件不存在的异常。

   

    public void read(String fileName) {

       

        /*

         不推荐使用

        if(!fileName.equals("log.txt")) {

           

        }

        */

        // 如果传的文件不是log.txt 说明读取日子文件失败

        if(!"log.txt".equals(fileName)) {

           

        }

       

    }

3. 声明异常throws

使用情况说明:如果异常出现的话,会立刻终止程序,所以我们得处理异常,如果我们不想终止可以自己处理异常

4.throw和throws

5.常见异常举例

越界

空指针异常---null不能调用API

/0

举报

相关推荐

0 条评论