Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 10969|回复: 0

java异常处理的throw和throws的区别

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-4-4 17:30:51 | 显示全部楼层 |阅读模式

    1. 区别

    throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型

    2.分别介绍

      throws:用于声明异常,例如,如果一个方法里面不想有任何的异常处理,则在没有任何代码进行异常处理的时候,必须对这个方法进行声明有可能产生的所有异常(其实就是,不想自己处理,那就交给别人吧,告诉别人我会出现什么异常,报自己的错,让别人处理去吧)。

    格式是:方法名(参数)throws 异常类1,异常类2,.....

     1 class Math{
     2       public int div(int i,int j) throws Exception{
     3           int t=i/j;
     4           return t;
     5       }
     6  }
     7 
     8 public class ThrowsDemo {
     9       public static void main(String args[]) throws Exception{
    10           Math m=new Math();
    11           System.out.println("出发操作:"+m.div(10,2));
    12      }
    13  }

     

    throw:就是自己进行异常处理,处理的时候有两种方式,要么自己捕获异常(也就是try catch进行捕捉),要么声明抛出一个异常(就是throws 异常~~)。

    注意:

    throw一旦进入被执行,程序立即会转入异常处理阶段,后面的语句就不再执行,而且所在的方法不再返回有意义的值!

     1 public class TestThrow
     2 {
     3     public static void main(String[] args) 
     4     {
     5         try
     6         {
     7             //调用带throws声明的方法,必须显式捕获该异常
     8             //否则,必须在main方法中再次声明抛出
     9             throwChecked(-3);            
    10         }
    11         catch (Exception e)
    12         {
    13             System.out.println(e.getMessage());
    14         }
    15         //调用抛出Runtime异常的方法既可以显式捕获该异常,
    16         //也可不理会该异常
    17         throwRuntime(3);
    18     }
    19     public static void throwChecked(int a)throws Exception
    20     {
    21         if (a > 0)
    22         {
    23             //自行抛出Exception异常
    24             //该代码必须处于try块里,或处于带throws声明的方法中
    25             throw new Exception("a的值大于0,不符合要求");
    26         }
    27     }
    28     public static void throwRuntime(int a)
    29     {
    30         if (a > 0)
    31         {
    32             //自行抛出RuntimeException异常,既可以显式捕获该异常
    33             //也可完全不理会该异常,把该异常交给该方法调用者处理
    34             throw new RuntimeException("a的值大于0,不符合要求");
    35         }
    36     }
    37 }

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-30 20:01 , Processed in 0.063873 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表