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. Python flask虚拟环境安装

    1.安装virtualenv 2.在当前路径下创建文件夹,启动虚拟环境 3.在使用虚拟环境前需激活,前面出现(env说明在虚拟环境中).虚拟环境中默认安装了pip,所以直接pip安装flask 4.在 ...

  2. SP263 PERIOD - Period KMP技巧

    \(\color{#0066ff}{题目描述}\) 如果一个字符串S是由一个字符串T重复K次形成的,则称T是S的循环元.使K最大的字符串T称为S的最小循环元,此时的K称为最大循环次数. 现给一个给定长 ...

  3. spring中使用缓存

    一.启用对缓存的支持 Spring 对缓存的支持最简单的方式就是在方法上添加@Cacheable和@CacheEvict注解, 再添加注解之前,必须先启用spring对注解驱动的支持,基于java的配 ...

  4. 为asp.net core 自定义路由动态修改

    根据IApplicationModelConvention 接口 实现相应的方法 /// <summary> /// 定义个类RouteConvention,private 来实现 IAp ...

  5. 在SQLSERVER中创建聚集索引

    CREATE CLUSTERED INDEX CLUSTER_id ON TABLE_name(ID)------批量

  6. UICollectionView的基本使用 collectionView

    #pragma mark -- 创建CollectionView - (void)createCollectionView{ //关闭自适应 self.automaticallyAdjustsScro ...

  7. springcloud系列九 整合Hystrix Dashboard

    Hystrix Dashboard是Hystrix的仪表盘组件,主要用来实时监控Hystrix的各项指标信息,通过界面反馈的信息可以快速发现系统中存在的问题. 整合快速体验: pom.xml(这个是F ...

  8. 使用sqlmetal工具自动生成SQL数据库的Linq类文件

    第一部:找到sqlmetal.exe. 运行cmd. 执行命令 cd C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5 ...

  9. Codeforces - 466C 双指针

    首先要判sum是否是3的整数倍 然后把符合条件的前缀和以及后缀和分别加入到静态vector中 最后扫一下j和k定位在哪然后求总长的差来更新答案 注意i j k至少隔1位,所以lower_bound是s ...

  10. linux 数据库管理

    1.安装数据库: yum install mariadb.serversystemctl staus mariadbsystemctl start mariadbsystemctl enable ma ...