1. package com.smbea.demo.tryCatchFinally;
  2.  
  3. /**
  4. * java之finally的用法
  5. * @author hapday
  6. * @2017年2月5日 @上午12:21:16
  7. */
  8. public class TryCatchFinallyDemo {
  9.  
  10. public static void main(String[] args) {
  11. hasException();
  12. System.out.println("\n——————————————————————————————————————————————————————————————————\n");
  13. noneException();
  14. System.out.println("\n——————————————————————————————————————————————————————————————————\n");
  15. System.out.println(hasReturnAndNoneException());
  16. System.out.println("\n——————————————————————————————————————————————————————————————————\n");
  17. System.out.println(hasReturnAndHasException());
  18. }
  19.  
  20. /**
  21. * 有异常发生
  22. */
  23. public static void hasException() {
  24. int divisor = 10;
  25. int dividend = 0;
  26.  
  27. try {
  28. System.out.println(divisor + " / " + dividend + " = " + (divisor / dividend));
  29. } catch (Exception e) {
  30. System.out.println("这里的代码只有出现异常后执行...");
  31. e.printStackTrace();
  32. } finally {
  33. System.out.println("这里的代码始终执行,不论有没有发生异常或在 try 块中出现 return 语句,都不受影响...");
  34. }
  35. }
  36.  
  37. /**
  38. * 无异常发生
  39. */
  40. public static void noneException() {
  41. int divisor = 10;
  42. int dividend = 10;
  43.  
  44. try {
  45. System.out.println(divisor + " / " + dividend + " = " + (divisor / dividend));
  46. } catch (Exception e) {
  47. System.out.println("这里的代码只有出现异常后执行...");
  48. e.printStackTrace();
  49. } finally {
  50. System.out.println("这里的代码始终执行,不论有没有发生异常或在 try 块中出现 return 语句,都不受影响...");
  51. }
  52. }
  53.  
  54. /**
  55. * try 块中有 return 语句但是无异常
  56. * @return
  57. */
  58. @SuppressWarnings("finally")
  59. public static int hasReturnAndNoneException() {
  60. int divisor = 10;
  61. int dividend = 10;
  62.  
  63. try {
  64. System.out.println(divisor + " / " + dividend + " = " + (divisor / dividend));
  65.  
  66. divisor *= 2;
  67.  
  68. System.out.println("divisor = " + divisor);
  69.  
  70. return divisor;
  71. } catch (Exception e) {
  72. System.out.println("这里的代码只有出现异常后执行...");
  73. e.printStackTrace();
  74. } finally {
  75. System.out.println("这里的代码始终执行,不论有没有发生异常或在 try 块中出现 return 语句,都不受影响...");
  76.  
  77. divisor *= 3;
  78.  
  79. System.out.println("divisor = " + divisor);
  80.  
  81. return divisor;
  82. }
  83. }
  84.  
  85. /**
  86. * try 块中有 return 语句但是有异常
  87. * @return
  88. */
  89. @SuppressWarnings("finally")
  90. public static int hasReturnAndHasException() {
  91. int divisor = 10;
  92. int dividend = 0;
  93.  
  94. try {
  95. System.out.println(divisor + " / " + dividend + " = " + (divisor / dividend));
  96.  
  97. divisor *= 2;
  98.  
  99. System.out.println("divisor = " + divisor);
  100.  
  101. return divisor;
  102. } catch (Exception e) {
  103. System.out.println("这里的代码只有出现异常后执行...");
  104. e.printStackTrace();
  105. } finally {
  106. System.out.println("这里的代码始终执行,不论有没有发生异常或在 try 块中出现 return 语句,都不受影响...");
  107.  
  108. divisor *= 3;
  109.  
  110. System.out.println("divisor = " + divisor);
  111.  
  112. return divisor;
  113. }
  114. }
  115. }

  

java之finally的用法的更多相关文章

  1. java中this的用法?

    2008-07-28 08:10cztx5479 | 分类:JAVA相关 | 浏览4533次 java中this的用法? import java.awt.*; import java.awt.even ...

  2. 转:十八、java中this的用法

    http://blog.csdn.net/liujun13579/article/details/7732443 我知道很多朋友都和我一样:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它, ...

  3. 设计模式 - 装饰者模式(Decorator Pattern) Java的IO类 用法

    装饰者模式(Decorator Pattern) Java的IO类 用法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26716 ...

  4. Java-Runoob-高级教程-实例-方法:09. Java 实例 – continue 关键字用法-un

    ylbtech-Java-Runoob-高级教程-实例-方法:09. Java 实例 – continue 关键字用法 1.返回顶部 1. Java 实例 - continue 关键字用法  Java ...

  5. Java-Runoob-高级教程-实例-方法:08. Java 实例 – break 关键字用法

    ylbtech-Java-Runoob-高级教程-实例-方法:08. Java 实例 – break 关键字用法 1.返回顶部 1. Java 实例 - break 关键字用法  Java 实例 Ja ...

  6. Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法

    ylbtech-Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法 1.返回顶部 1. Java 实例 - instanceof 关键字用法   ...

  7. Java 中 synchronized的用法详解(四种用法)

    Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码.本文给大家介绍java中 synchronized的用法,对本文感兴趣的朋友一起看看吧 ...

  8. java成神之——java中string的用法

    java中String的用法 String基本用法 String分割 String拼接 String截取 String换行符和format格式化 String反转字符串和去除空白字符 String获取 ...

  9. java.util.ResourceBundle国际化用法详解

    java.util.ResourceBundle国际化用法详解 初识国际化和ResourceBundle 这个类主要用来解决国际化和本地化问题.国际化和本地化可不是两个概念,两者都是一起出现的.可以说 ...

随机推荐

  1. 转载《centos6安装nginx最详细步骤》

    出处:https://www.cnblogs.com/hltswd/p/6956264.html 第一步:在centos下面下载 nginx          wget http://nginx.or ...

  2. Oracle数据控制语言(DCL)

    数据控制语言 用来授予或者回收访问数据库中的各种对象,如表 .视图 .索引 等 基本的操作如下: --创建用户 CREATE USER jim IDENTIFIED BY changeit; --给用 ...

  3. linux select代码框架

    #define PORT 1234 #define BACKLOG 5 #define MAXDATASIZE 1000 typedef struct CLIENT{ int fd; char* na ...

  4. Buy or Build UVA - 1151 Kruskal+枚举

    题意: 大概意思是有 n 个点,现在有 q 个方案 ,第 i 个方案耗费为 ci ,使 Ni 个点联通 ,当然也可以直接使两点联通 ,现求最小生成树的代价. 两点直接联通的代价是欧几里得距离的平方: ...

  5. [Unity3D]Unity3D游戏开发之怪物AI

    大家好.欢迎大家关注由我为大家带来的Unity3D游戏开发系列文章,我的博客地址为:http://blog.csdn.net/qinyuanpei.        在上一篇文章中,我们基本上实现了一个 ...

  6. 分析mybatis和jdbc的作用,已经原理

    从jdbc的操作数据库来看:主要分为几步: 1 注冊载入JDBC驱动程序: 2 得到连接对象 Connection 3 创建 Statement对象 4 运行sql语句 5 处理结果 6 关闭资源释放 ...

  7. lambda函数/排序/filter/map

    1.lambda 匿名函数 zrf = lambda x:x**2 ret = zrf(10) #这里面实际上还是有函数名 print(ret) 2.sorted 排序(list也自带排序功能) 排序 ...

  8. 关于string 的简单应用

    声明||作用 string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍. 之所以抛弃char*的字符串而选用C++标准程序库中的string类, ...

  9. 关于pycharm使用sqlite数据可视化的使用

    如图

  10. 前端CSS css引入方式 css选择器 css选择器优先级

    一.       CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观. 当浏览器读到一个样式表,它就会按照这个样式表 ...