1. 程式人生 > >java異常丟擲時間順序

java異常丟擲時間順序

1、當前方法丟擲異常時(交給java虛擬機器執行異常處理)

public class ExceptionTest5 {
	public void method(String str) throws MyException{
		if(str == null){
			throw new MyException("傳入的字串引數不能為null");
		}
		else{
			System.out.println(str);
		}
	}
	
	/*
	 * 根據多型,也可以丟擲 Exception型別的異常: 
	 * 1) throws Exception
	 * 2) 捕獲也可以這樣寫 catch(Exception e)
	 */
	public static void main(String[] args) throws MyException{
		
		try{
			ExceptionTest5 test = new ExceptionTest5();
			test.method(null);
		}catch(MyException e){
			e.printStackTrace();
		}
		finally{
			System.out.println("異常處理完畢");
		}
		System.out.println("程式執行完畢");

	}
}

執行結果為:

異常處理完畢 

程式執行完畢 

com.ahuier.exception.MyException: 傳入的字串引數不能為null at com.ahuier.exception.ExceptionTest5.method(ExceptionTest5.java:6) at com.ahuier.exception.ExceptionTest5.main(ExceptionTest5.java:22)

2、當前方法不丟擲異常

public class ExceptionTest5 {
	public void method(String str) throws MyException{
		if(str == null){
			throw new MyException("傳入的字串引數不能為null");
		}
		else{
			System.out.println(str);
		}
	}
	
	/*
	 * 根據多型,也可以丟擲 Exception型別的異常: 
	 * 1) throws Exception
	 * 2) 捕獲也可以這樣寫 catch(Exception e)
	 */
	public static void main(String[] args) {
		
		try{
			ExceptionTest5 test = new ExceptionTest5();
			test.method(null);
		}catch(MyException e){
			e.printStackTrace();
		}
		finally{
			System.out.println("異常處理完畢");
		}
		System.out.println("程式執行完畢");

	}
}

執行結果:
com.ahuier.exception.MyException: 傳入的字串引數不能為null
at com.ahuier.exception.ExceptionTest5.method(ExceptionTest5.java:6)
at com.ahuier.exception.ExceptionTest5.main(ExceptionTest5.java:22)
異常處理完畢
程式執行完畢