前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java异常之throws和throw理解

Java异常之throws和throw理解

作者头像
用户7886150
修改2021-04-27 17:50:37
1.4K0
修改2021-04-27 17:50:37
举报
文章被收录于专栏:bit哲学院

参考链接: Java throw和throws

1、Throws 

      如果在当前方法不知道该如何处理该异常时,则可以使用throws对异常进行抛出给调用者处理或者交给JVM。调用者调用此方法,要么抛出要么try catch处理,到了JVM这里,就是打印出异常堆栈,并终止运行。换句话说,用这个有两种情况。 

       1>我 throws抛出异常,如果是检查异常,那么调用者必须捕获或再次抛出 

       2>我 throws抛出异常,如果是非检查异常或者没有直接调用的地方,都是可以交给jvm来处理 

      throws在使用时应处于方法签名之后使用,可以抛出多种异常并用英文字符逗号’,’隔开。 

public void throwsTest() throws ExceptionClass1, ExceptionClass2 {...} 

2、throw 

      如果需要程序在程序中自行抛出异常,应该使用throw语句抛出,抛出的不是一个类而是一个对象且只能抛出一个对象。它可以单独使用,也可以结合catch块捕获使用。如果抛出的异常对象时Checked异常则处于try块里被catch捕获或者放在一个带throws的方法里;如果抛出的是RuntimeException则既可以显示使用try…catch捕获也可以不理会它   

public static void main(String[] args) {

        throwRuntime(2);

        try{

            throwChecked(3);

        }catch(Exception e) {

            System.out.println(e.getMessage());

        }

        //throw的异常可以直接交给jvm

        throwRuntime(-3);

        throwFileNotFound(5);

    }

    //该方法内抛出一个Exception异常对象,必须捕获或抛给调用者

    public static void throwChecked(int a) throws Exception {

        if(a < 0) {

            throw new Exception("a的值应大于0,不符合要求");

        }

    }

    //该方法内抛出一个RuntimeException对象,可以不理会直接交给JVM处理,非checked异常可以不用try catch抛出

    public static void throwRuntime(int a) {

        if(a < 0) {

                throw new RuntimeException("a的值应大于0,不符合要求");

        }

    }

    //该方法内抛出一个FileNotFoundException对象,checked异常需要在try catch语句块中抛出,可以不理会直接交给JVM处理

    public static void throwFileNotFound(int a) {

        if(a < 0) {

            try {

                throw new FileNotFoundException("a的值应大于0,不符合要求");

            } catch (FileNotFoundException e) {

                e.printStackTrace();

            }

        }

    } 

更多可参考:https://blog.csdn.net/sdr_zd/article/details/75675004

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档