Java的finally語句

yoyochina發表於2009-02-17

     下面的兩段程式會有不同的輸出結果,但Java的finally語句不是一定會被執行麼,那為什麼會這樣呢?哪位明白的能給解釋一下?

 

public class Test
{
	public static void main(String[] args)
	{
		try
		{
			System.out.println("Hello");
			return;
		}finally
		{
			System.out.println("Goodbye");
		}
	}
}

 

輸出結果為:

Hello

Goodbye

 

public class Test
{
	public static void main(String[] args)
	{
		try
		{
			System.out.println("Hello");
			System.exit(0);
		}finally
		{
			System.out.println("Goodbye");
		}
	}
}

 

輸出結果為:

Hello

 

看起來這段程式中的finally語句好像沒有被執行。怎麼解釋這個呢?不太明白。

 

相關文章