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

java异常中throw和throws的区别

作者头像
用户7886150
修改2021-04-07 11:28:04
6780
修改2021-04-07 11:28:04
举报
文章被收录于专栏:bit哲学院

参考链接: Java中的throw和throws之间的区别

throws 

用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。 

用在方法声明后面,跟的是异常类名可以跟多个异常类名,用逗号隔开表示抛出异常,由该方法的调用者来处理throws表示出现异常的一种可能性,并不一定会发生这些异常 

public class ThrowsDemo {

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

        intArray0 = new int [3];;

   }

}

throw 

则是用来抛出一个具体的异常类型。就是自己处理一个异常,有两种方式要么是自己捕获异常try…catch代码块,要么是抛出一个异常(throws 异常) 

用在方法体内,跟的是异常对象名只能抛出一个异常对象名表示抛出异常,由方法体内的语句处理throw则是抛出了异常,执行throw则一定抛出了某种异常 

public class ThrowDemo {

    public static void main(String[] args) 

    {

        try

        {

            //调用带throws声明的方法,必须显式捕获该异常

            //否则,必须在main方法中再次声明抛出

            throwChecked(-3);            

        }

        catch (Exception e)

        {

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

        }

        //调用抛出Runtime异常的方法既可以显式捕获该异常,

        //也可不理会该异常

        throwRuntime(3);

    }

    public static void throwChecked(int a)throws Exception

    {

        if (a > 0)

        {

            //自行抛出Exception异常

            //该代码必须处于try块里,或处于带throws声明的方法中

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

        }

    }

    public static void throwRuntime(int a)

    {

        if (a > 0)

        {

            //自行抛出RuntimeException异常,既可以显式捕获该异常

            //也可完全不理会该异常,把该异常交给该方法调用者处理

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

        }

    }

}

本文系转载,前往查看

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

本文系转载前往查看

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

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