java之finally的用法

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;
		}
	}
}

  

转载于:https://www.cnblogs.com/hapday/p/6366788.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值