zoukankan      html  css  js  c++  java
  • 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("
    ——————————————————————————————————————————————————————————————————
    ");
    		noneException();
    		System.out.println("
    ——————————————————————————————————————————————————————————————————
    ");
    		System.out.println(hasReturnAndNoneException());
    		System.out.println("
    ——————————————————————————————————————————————————————————————————
    ");
    		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;
    		}
    	}
    }
    

      

  • 相关阅读:
    AC日记——[HNOI2008]GT考试 bzoj 1009
    AC日记——[SCOI2009]游戏 bzoj 1025
    AC日记——[HNOI2010]BOUNCE 弹飞绵羊 洛谷 P3203
    AC日记——旅游 bzoj 2157
    NOIP模拟2017.6.11解题报告
    AC日记——【模板】Link Cut Tree 洛谷 P3690
    AC日记——[SDOI2010]大陆争霸 洛谷 P3690
    [NOI2010]超级钢琴 倍增
    [HNOI2004]L语言 字典树 记忆化搜索
    对拍
  • 原文地址:https://www.cnblogs.com/hapday/p/6366788.html
Copyright © 2011-2022 走看看