下面这段程序的return语句的作用及运行结果是什么?
class Test {
    public static String output="";
       public Test4() {
    }
    public static void foo(int i){
        try{
            if(i==1){
                throw new Exception();
            }
            output+="1";
            }catch(Exception e)
            {
                output+="2";
             return;
            }
            finally{
                output+="3";    
            }
            output+="4";
        }
    public  static void main(String[] args){
        foo(0);
        foo(1);
          System.out.println(output);
    }
}