Java中throw和throws的区别是什么

发布时间:2020-07-22 11:26:39

来源:亿速云

阅读:83

作者:Leah

这篇文章运用简单易懂的例子给大家介绍Java中throw和throws的区别是什么,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

区别分析:

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

可以跟多个异常类名,用逗号隔开

表示抛出异常,由该方法的调用者来处理

throws表示出现异常的一种可能性,并不一定会发生这些异常

throw:则是用来抛出一个具体的异常类型。用在方法体内,跟的是异常对象名

只能抛出一个异常对象名

表示抛出异常,由方法体内的语句处理

throw表示抛出了异常,执行throw则一定抛出了某种异常

下面我们来分别介绍一下:

throws在方法后边声明异常,其实就是自己不想对异常做出任何的处理,告诉别人自己可能出现的异常,交给别人处理。

代码示例:package com.xinkaipu.Exception;

class Math{

public int div(int i,int j) throws Exception{

int t=i/j;

return t;

}

}

public class ThrowsDemo {

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

Math m=new Math();

}

}

(视频教程推荐:java视频教程)

throw:就是自己处理一个异常,要么是自己捕获异常try...catch代码块,要么是抛出一个异常(throws 异常)。

代码实现:package com.xinkaipu.Exception;

public class TestThrow

{

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,不符合要求");

}

}

}

关于Java中throw和throws的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

java中throw是什么意思_Java中throw和throws的区别是什么相关推荐

  1. java的throw不常用吗_java中的throw与throws的区别

    什么时运行时异常?什么是非运行时异常? 通俗的讲: 运行时异常:就是编译通过,运行时就崩了,比如数组越界. 非运行时异常:就是编译不通过,这时就得必须去处理了.不然就没法运行了. 全面的讲: Thro ...

  2. Java中非法参数的异常_Java中的异常

    异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...

  3. java中的case1怎么说_Java 中的 CAS 简述及原理解析

    一.CAS 是什么? CAS(Compare And Swap),比较并交换,它是一条CPU并发原语.它的功能是判断内存某个位置的值是否为预期值,如果是则更新为新的值,这个过程是原子的.1 publi ...

  4. java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思

    Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...

  5. java 内存溢出和内存泄漏_JAVA中的内存溢出和内存泄漏有很大的区别

    JAVA中的内存溢出和内存泄漏分别是什么,有什么联系和区别,我谈谈自己的理解. 内存泄漏(memory leak ):申请了内存不释放,比如100m的内存,分配了10m的内存一直不回收,那么可以用的内 ...

  6. java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?

    小编典典 Java中的本机方法是什么,应在哪里使用? 一旦看到一个小例子,就很清楚了: Main.java : public class Main { public native int intMet ...

  7. java中为什么要用注解_java中的注解,真的很重要,你理解了嘛?

    这篇文章开始讲解java中的注解,在平时的开发当中我相信你或多或少的接触过注解.比如你可能都见过@override,它代表的就是一个注解.但是,为了更加清晰的去介绍注解,我还是先给出一个例子,让你能够 ...

  8. java中volatile关键字的含义_java中volatile关键字的含义

    转自:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html 在java线程并发处理中,有一个关键字volatile的使用目前存 ...

  9. java中map如何实现遍历_Java中如何遍历Map对象的4种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

最新文章

  1. SQL Server 2008行数据和页数据压缩解密
  2. linux查看log4c版本号,linux下安装log4cplus
  3. 安卓 spinner下拉框 做模糊查询_如何用一张图来做全年/去年的部门离职率动态对比...
  4. 近世代数--多项式环--未定元的存在性
  5. csuoj 1350: To Add Which?
  6. 51单片机雾化片自动扫频程序_单片机简介
  7. 类别动态绑定到TreeView控件
  8. 动态规划:任务调度问题(双塔问题)
  9. working-with-php-and-beanstalkd
  10. wine linux 目录,wine的安装与microsoft office在linux上的运行
  11. Android开发网上的一些重要知识点
  12. 关于RocketMQ消费者消费队列的消费起始位置源码分析
  13. BMCBIOS全擦升级
  14. 基于python解析网易云歌单.
  15. Kettle5.4调用Redis
  16. 采购价格条件报表(双loop)
  17. 《考研-数据结构-哈弗曼树-已知某段通信报文内容,对该报文进行哈弗曼编码,并计算平均码长》
  18. STM32F103C8的keil环境配置和STlink烧录
  19. MOOC 苏小红C语言 第四周编程题
  20. 使用wkhtmltopdf把网页转换为pdf的经验总结

热门文章

  1. ubuntu如何安装及卸载mysql服务详细教程-图文版
  2. vue——echarts更换主题
  3. 创建Direct3D9设备-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(5)
  4. 关于直接下载第三方IPA应用分发平台之蒲公英的研究
  5. Chrome 制作绿色便携版
  6. C++计算机二级操作题(二)
  7. 【数学建模】“一口价”的战略(博弈模型)
  8. 计算机系统(1) 实验五 中断实验
  9. 详解注意力机制和Transformer
  10. JSP内置对象Session——setAttribute/getAttibute/removeAttribute