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. 统计元音(stringstream的-应用)

    Problem Description 统计每个元音字母在字符串中出现的次数.   Input 输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串.   Output ...

  2. Web安全工程师(进阶)课程表

    01-SQL注入漏洞原理与利用 预备知识: 了解HTTP协议,了解常见的数据库.脚本语言.中间件.具备基本的编程语言基础. 授课大纲: 第一章:SQL注入基础 1.1 Web应用架构分析1.2 SQL ...

  3. IDEA 文档注释 乱码 终极... 解决方案

    idea bin 目录 下           phpstorm64.exe.vmoptions  最后一行添加  : -Dfile.encoding=UTF-8

  4. kibana启动调试

    在windows的命令行窗口中,将路径制定到kibana的源代码bin目录中,然后执行 kibana.bat --dev --no-base-path 需要注意的是kibana.yml中的配置文件需要 ...

  5. python基础之1--Python入门

    第1章 Python生态圈 第2章 编程与编程语言 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 2.1 编程的目的: 计算机 ...

  6. SQL常用性能统计语句

    1.查看SQL语句IO消耗 set statistics io on     sql 语句 set statistics io off 2.查看SQL语句时间消耗 set statistics tim ...

  7. Linux中的netstat命令详解

    功能说明 netstat是基于Netstat这个命令行工具的指令,它可以用来查询系统上的网络套接字连接情况,包括tcp,udp以及Unix套接字:另外它还能列出路由表,接口状态和多播成员等信息. 主要 ...

  8. Modbus协议学习笔记

    之前也有写过基于 Modbus 通讯协议的控制远程监控程序,但是由于当时时间赶.人手少(软硬件前后台都是在下一人

  9. (转)如何使用caffe的MATLAB接口

    编译MatCaffe 转自: http://blog.csdn.net/ws_20100/article/details/50525879 使用如下命令编译MatCaffe make all matc ...

  10. 「linux」后台启动nohup经常跟的>/dev/null 2>&1是什么意思

    https://www.cnblogs.com/wangsongbai/p/10215155.html 我们在写启动脚本的时候,会用nohup &,这个大家都知道,但是经常会有 >/de ...