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

      

  • 相关阅读:
    使用QT在子线程中访问串口
    小程序批量上传图片方案
    Jenkins自动化远程部署(vue-github)
    nginx配置https证书
    Linux 安装php7
    Vue技术点整理-指令
    如何保证接口的幂等性?
    mybatis 一对多分页查询数据条数不匹配解决
    源码系列-JDK-String
    kafka window 操作
  • 原文地址:https://www.cnblogs.com/hapday/p/6366788.html
Copyright © 2011-2022 走看看