前言

说到异常,我们当然会想到try catch finally。当然如果用这个的话,被try块包围的代码说明这段代码可能会发生异常,一旦发生异常,异常便会被catch捕获到,然后需要在catch块中进行异常处理。当然这只是一种处理异常的方式,那么在java中还有另一种处理方式就是抛出异常,让调用者进行处理,自己就不再负责了,就学习到了throw 和throws。那么两者有什么区别呢?

throws语句

throw是语句抛出一个异常

语法:throw(异常对象);

throw e;

具体例子:

throws

throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)

语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......}

如: public void function() throws Exception{......}

当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理。如:

throw与throws的区别

通过上面的两个demo可以得知:

1、throw用在方法体内,上面代码显示了,是直接在main方法体内

throws用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。这个看上面的代码就理解了

2、throw是具体向外抛异常的,抛出的是一个异常实例

throws声明了是哪种类型的异常,使它的调用者可以捕获这个异常

3、throw,如果执行了,那么一定是抛出了某种异常了,安生throws表示可能出现,但不一定。

4、同时出现的时候,throws出现在函数头、throw出现在函数体,两种不会由函数去处理,真正的处理由函数的上层调用处理

好的编程习惯

1、在写程序时,对可能会出现异常的部分通常要用try{...}catch{...}去捕捉它并对它进行处理;

2、如果是系统异常的话可以什么都不用做,也可以针对方法抛出一个异常,但是还是建议针对方法写一个throws,因为这样在完成一个大型任务的时候可以让别的程序员知道这里会出现什么异常。

java方法后面throw的作用_Java异常处理中throw与throws的用法区别相关推荐

  1. python中try的作用_Python异常处理中try,except用法?

    我来详细介绍异常编码的语法模式,try/except/else和try/finally. 先重新回顾一下try.except.else.finally几个关键字: try后面紧跟着缩进的语句代码,代表 ...

  2. 异常处理中throws和throw的区别?

    异常处理中throws和throw的区别? 参考文章: (1)异常处理中throws和throw的区别? (2)https://www.cnblogs.com/suger-4/p/12192418.h ...

  3. python 异常处理中try else语句的使用

    python 异常处理中try else语句的使用 参考文章: (1)python 异常处理中try else语句的使用 (2)https://www.cnblogs.com/journey-mk5/ ...

  4. python中try和except语句语言导入包吗_Python异常处理中try与except用法的案例

    Python异常处理中try与except用法的案例 发布时间:2020-11-03 09:44:36 来源:亿速云 阅读:85 作者:小新 小编给大家分享一下Python异常处理中try与excep ...

  5. java中输出时 什么作用_JAVA中输入和输出处理(Java I/O)重点总结

    文件-使用File类操作文件: 什么是文件?  文件可认为是相关记录或放在一起的数据的集合. 文件一般存储在哪里?  储存在存储设备里. Java程序如何访问文件?  Java API:java.io ...

  6. java方法被编译器调用_我异常了,快来捕获我,Java异常简述

    在我们日常编程中,异常处理是必不可少的,异常处理是否得当关系到程序的健壮性和后续维护成本. 试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻找出错的根源?但是如果一个项目异常处理设 ...

  7. java 方法执行结束局部变量释放_Java方法执行的内存模型

    Java虚拟机栈:Java方法执行的内存模型 Java虚拟机栈:Java方法执行的内存模型Java方法执行的内存模型当前线程:当前栈帧局部变量表操作数栈动态链接返回地址等信息...栈帧3栈帧2栈帧1线 ...

  8. java方法带参数返回值_Java方法中的参数太多,第6部分:方法返回

    java方法带参数返回值 在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , ...

  9. java线程池有什么作用_java线程池的作用是什么?线程池介绍

    你知道java中线程池的作用是什么吗?那么究竟什么是线程池呢?都有哪些类型呢?让我们对以上的问题来进行详细的了解吧. 一.java线程池作用 第一个我们先来对它的作用进行一下简单的介绍,使用线程池的优 ...

最新文章

  1. java开发培训中消息中间件的优势有哪些
  2. 外部的Navicat连接docker中的mysql
  3. 高校网站群建设方案简介
  4. numpy ndarray.tostring()(在数组中构造包含原始数据字节的Python字节)(tobytes()函数的兼容性别名)
  5. OpenCV FLANN在数据集中搜索查询图片的实例(附完整代码)
  6. 除自身以外数组的乘积—leetcode238
  7. oracle 树查询语句,oracle 树查询 语句
  8. [开源] .Net 使用 ORM 访问 神舟通用数据库(神通)
  9. 星巴克、喜茶们左右围守 瑞幸的大师故事还能讲多久
  10. Windows2008r2如何关闭防火墙
  11. cesium画飞线_基于Cesium绘制抛物弧线
  12. js中的逻辑与()和逻辑或(||)(转载)
  13. java 图表 word_java Freemark模板生成word图表及目录
  14. win7电脑怎么设置桌面便签
  15. python 蒙特卡罗_python实现蒙特卡罗方法(代码示例)
  16. CSS 3之 文本样式(三)
  17. ART工作流程及特性
  18. Mesa学习笔记#1:Running MESA
  19. 字节女测试工程师万字总结的软件测试入门技巧
  20. 高德地图 SDK 的应用 01:绘制多边形区域图

热门文章

  1. lol 5.24版本top5:火男胜率登顶
  2. Oracle简单操作总结
  3. 最细RGB颜色表,建议收藏
  4. 基于URL特征的网站结构信息挖掘
  5. 分享:用Python语言轻松实现二代身份证阅读器(读卡器)自动读卡,支持定制开发
  6. TB6612使用说明,使用方法,引脚图,实物图。
  7. [AD资料] AD入门之AD10软件安装
  8. js插件 excel在线编辑插件X-Spreadsheet
  9. 云宏与英特尔携手发布了基于英特尔®至强®可扩展平台全面升级
  10. android webview白屏,处理方案:webview 闪白屏问题