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

      

  • 相关阅读:
    js设计模式 -- 拷贝模式
    超简单的SpringBoot整合mybatis
    使用JS调用手机本地摄像头或者相册图片识别二维码/条形码
    SpringBootsad整合EhCache做缓存处理
    调用微信的扫一扫功能详解说明---(java 排坑版)
    获取系统文件的创建日期
    在windows上获取文件创建时间
    简单计算器
    lambda-基于谓词筛选值序列
    IEnumerable<T>和IQueryable<T>区别
  • 原文地址:https://www.cnblogs.com/hapday/p/6366788.html
Copyright © 2011-2022 走看看