package com.smbea.demo.tryCatchFinally;

/**
* java之finally的用法
* @author hapday
* @2017年2月5日 @上午12:21:16
*/
public class TryCatchFinallyDemo { public static void main(String[] args) {
hasException();
System.out.println("\n——————————————————————————————————————————————————————————————————\n");
noneException();
System.out.println("\n——————————————————————————————————————————————————————————————————\n");
System.out.println(hasReturnAndNoneException());
System.out.println("\n——————————————————————————————————————————————————————————————————\n");
System.out.println(hasReturnAndHasException());
} /**
* 有异常发生
*/
public static void hasException() {
int divisor = 10;
int dividend = 0; try {
System.out.println(divisor + " / " + dividend + " = " + (divisor / dividend));
} catch (Exception e) {
System.out.println("这里的代码只有出现异常后执行...");
e.printStackTrace();
} finally {
System.out.println("这里的代码始终执行,不论有没有发生异常或在 try 块中出现 return 语句,都不受影响...");
}
} /**
* 无异常发生
*/
public static void noneException() {
int divisor = 10;
int dividend = 10; try {
System.out.println(divisor + " / " + dividend + " = " + (divisor / dividend));
} catch (Exception e) {
System.out.println("这里的代码只有出现异常后执行...");
e.printStackTrace();
} finally {
System.out.println("这里的代码始终执行,不论有没有发生异常或在 try 块中出现 return 语句,都不受影响...");
}
} /**
* try 块中有 return 语句但是无异常
* @return
*/
@SuppressWarnings("finally")
public static int hasReturnAndNoneException() {
int divisor = 10;
int dividend = 10; try {
System.out.println(divisor + " / " + dividend + " = " + (divisor / dividend)); divisor *= 2; System.out.println("divisor = " + divisor); return divisor;
} catch (Exception e) {
System.out.println("这里的代码只有出现异常后执行...");
e.printStackTrace();
} finally {
System.out.println("这里的代码始终执行,不论有没有发生异常或在 try 块中出现 return 语句,都不受影响..."); divisor *= 3; System.out.println("divisor = " + divisor); return divisor;
}
} /**
* try 块中有 return 语句但是有异常
* @return
*/
@SuppressWarnings("finally")
public static int hasReturnAndHasException() {
int divisor = 10;
int dividend = 0; try {
System.out.println(divisor + " / " + dividend + " = " + (divisor / dividend)); divisor *= 2; System.out.println("divisor = " + divisor); return divisor;
} catch (Exception e) {
System.out.println("这里的代码只有出现异常后执行...");
e.printStackTrace();
} finally {
System.out.println("这里的代码始终执行,不论有没有发生异常或在 try 块中出现 return 语句,都不受影响..."); divisor *= 3; System.out.println("divisor = " + divisor); return divisor;
}
}
}

  

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. 图片压缩工具之grunt-contrib-imagemin

    对页面进行优化时~免不了对使用的图片进行压缩~以便减小我们使用的图片的大小~这样就可以减少用户下载的文件大小,加快页面访问速度.Google Pagespeed最佳实践建议我们用 jpegtran 或 ...

  2. P1900 自我数

    题意: 对于每一个正整数n,我们定义d(n)为n加上它每一位数字的和. 例如,d(75)=75+7+5=87.给定任意正整数n作为一个起点,都能构造出一个无限递增的序列:n, d(n), d(d(n) ...

  3. arcgis打印服务

    <script>    function print1() {        require([               "esri/map",           ...

  4. UICollectionView Layout自定义 Layout布局

    from:   http://www.tuicool.com/articles/vuyIriN 当我们使用系统自带的UICollectionViewFlowLayout无法实现我们的布局时,我们就可以 ...

  5. centos7上面关闭防火墙

    CentOS 7.0默认使用的是firewall作为防火墙:若没有启用iptables 作为防火墙,则使用以下方式关闭防火墙: systemctl stop firewalld.service 关闭开 ...

  6. java8 optional操作

    目标:测试option的过滤,链式操作: 代码: package test; import java.util.ArrayList; import java.util.Arrays; import j ...

  7. [題解](最小生成樹)luogu_P2916安慰奶牛

    可以發現每個點經過次數恰好等於這個點的度數,所以把點權下放邊權,跑最小生成樹,原來邊權乘二在加上兩端點權,答案再加一遍起點最小點權 #include<bits/stdc++.h> #def ...

  8. java程序员的从0到1:@Resource与@Autowired的比较

    目录: 1.@Resource与@Autowired的源码分析 2.@Resource与@Autowired的相同点 3.@Resource与@Autowired的不同点 正文: 1.@Resourc ...

  9. Linux 磁盘 分区 挂载点的理解

    在Linux中一切皆文件: 虚拟文件系统(Virtual File System, 简称 VFS), 是 Linux 内核中的一个软件层,用于给用户空间的程序提供文件系统接口:同时,它也提供了内核中的 ...

  10. POJ2886Who Gets the Most Candies?(线段树之约瑟夫)

    约瑟夫问题的升级版,每次出去的是前一个出去的人位置+手上的数字(正往前,负往后).第i个出去的人拿的糖是i的约数的个数.求拿糖最多的人和他的糖果数. 这里用到了反素数的知识,在这直接打表 题目 AC代 ...