前言

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

throws语句

throw是语句抛出一个异常

语法:throw(异常对象);

throw e;

具体例子:

</pre><pre code_snippet_id="1956918" snippet_file_name="blog_20161030_1_1743262" name="code" class="csharp"><pre name="code" class="java"><span style="font-family:KaiTi_GB2312;font-size:24px;"></span><pre name="code" class="java"><span style="font-family:KaiTi_GB2312;font-size:24px;">package demo;public class demo {public static void main(String[] args) {// TODO Auto-generated method stubString s = "abc"; if(s.equals("abc")) { throw new NumberFormatException(); } else { System.out.println(s); } }
}</span>

运行结果:

throws

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

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

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

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

<span style="font-family:KaiTi_GB2312;font-size:24px;">public class throwsdemo {public static void function() throws NumberFormatException{ String s = "abc"; System.out.println(Double.parseDouble(s)); } public static void main(String[] args) {// TODO Auto-generated method stubtry { function(); } catch (NumberFormatException e) { System.err.println("非数据类型不能转换。"); //e.printStackTrace(); } }}</span>

运行结果:

throw与throws的区别

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

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

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

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

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

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

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

好的编程习惯

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

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

Java异常处理中throw与throws的用法区别相关推荐

  1. java方法后面throw的作用_Java异常处理中throw与throws的用法区别

    前言 说到异常,我们当然会想到try catch finally.当然如果用这个的话,被try块包围的代码说明这段代码可能会发生异常,一旦发生异常,异常便会被catch捕获到,然后需要在catch块中 ...

  2. [转载] Java异常处理中Try-Catch-Finally中常见的笔试题

    参考链接: Java中try catch finally 假设利用 return 语句从 try 语句块中退出.在方法返回前,finally子句的内容将被执行.如果 finally 子句中也有一个 r ...

  3. Java异常处理中try,catch,finally的各种组合用法

    1.try+catch 程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理.然后执行catch块后面的语句 2.try+catch+finally 程序的流程是:运行到try块中 ...

  4. java 异常处理 return,求大神!!!!java 异常处理中return的意思

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在方法中使用return 就是返回到方法的调用方,而在main 方法中使用,返回到JVM(虚拟机),如果把上面的main 方法中的代码放在一个方法中,如下 ...

  5. java异常中return_求大神!!!!java 异常处理中return的意思

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在方法中使用return 就是返回到方法的调用方,而在main 方法中使用,返回到JVM(虚拟机),如果把上面的main 方法中的代码放在一个方法中,如下 ...

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

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

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

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

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

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

  9. 批处理中for的参数的用法

    原文: 批处理中for的参数的用法 http://www.eoeandroid.com/thread-246514-1-1.html ----------------------- Android 仿 ...

  10. java中int和integer的区别_Java异常中throw和throws关键字的区别

    Java中常常弄混的两个关键字,throw和throws,它们有什么区别呢?如何记忆他们,而不至于出错呢? throw和throws 区别 throws:出现在方法的签名中,声明当前方法可能抛出的所有 ...

最新文章

  1. PCL:基于PCL绘制包围盒基础介绍(1)
  2. 树莓派 使用读卡器修改WIFI连接配置
  3. For与Function进阶实战、Lazy的使用笔记总结
  4. 安卓进阶系列-03上弹选择框(PopupDialog)的使用
  5. Python函数之 ceil, floor,round
  6. 动态规划 NOIP经典问题 开心的金明(洛谷P1060题题解,Java语言描述)
  7. 会员编号生成规则_单据编号规则浅析
  8. NOI Online能力测试2视频版,让我们看看出题专家怎么说!(入门组)
  9. 编程:从前有一个傻呆程序员,老婆交给他一项任务,他办了四次才满意
  10. C#调用exe工作目录
  11. Css单位px,rem,em,vw,vh的区别
  12. Lenovo联想键盘关闭fn功能恢复F1-F12按键
  13. Ubuntu下安装QQ(wineQQ)
  14. UG工程图模板创建步骤
  15. 发展恐怖故事–邮件炸弹
  16. html图片轮播放大,jquery+CSS3实现轮播图、js实现轮播图片自适应等比显示、图片旋转、图片拖拽、鼠标滚动放大缩小...
  17. js打印window.print()图片打印
  18. 哪款护眼灯最适合学生?教育部入围护眼照明品牌
  19. 计算机c语言基础字符,2008计算机二级考试:C语言基础教程-C语言字符型数据
  20. H3C防火墙web管理

热门文章

  1. sourcesafe.light 开源项目启动
  2. python爬取虾米音乐_【个人】爬虫实践,利用xpath方式爬取数据之爬取虾米音乐排行榜...
  3. Java POI 拆分excel单元格并填充内容
  4. cortex m3 寄存器
  5. js java script MD5码的生成
  6. 263企业邮箱imap服务器,263企业邮箱支持IMAP邮箱搬家功能
  7. 麦子学院深度学习视频课程(中文授课、代码讲解为主)
  8. glew库安装和初始化
  9. 国产操作系统Deepin的安装
  10. MTk kernel启动流程