form1.cn
Make a little progress every day

Java中try..catch..finally的用法实例

15th of June 2017 Java Java 2016

本人感觉try..catch..finally,有点像 switch..case:break..default,只不过前者是用来捕获Exception的

以下为本人做的一个小的例子,可运行后观查执行效果


package net.form1;
import java.util.InputMismatchException;

public class Trycatch {
	
	public static void main(String[] args) {
		Trycatch trycatch = new Trycatch();
		int result = trycatch.trycatchfinaly();
		System.out.println(result);
	}
	
	public int trycatchfinaly(){
		int num = 100;
		int divider = 10;
		try{
			while(divider > -1){
				divider--;
				num = num + 100 / divider;
				//System.out.println(divider);
			}
			return divider;//无异常,则会返回divider的值
		}catch (InputMismatchException e) {
			// InputMismatchException 输入类型错配的
			System.out.println("如果非数字异常会被打印");
			return -3;
		}catch (ArithmeticException e) {
			// ArithmeticException 算术错误
			System.out.println("算术错误会被打印");
			return -2;
		}catch (Exception e) {
			e.printStackTrace();//打印堆栈信息
			System.out.println("发现异常情况!!");
			return -1;//如果有异常,则会返回-1
		}finally{
			System.out.println("我是finally,num的值为:" + num);
		}
		/*
		  return语句执行到哪个语句块中,会返回哪个语句块中的return
		  Exception的检测是由子到父的
		  finally不管是否有异常,最终都会运行finally语句块
		  /
	}
	
}


java类库中提供的异常种类: