希望JAVA厉害的能给讲下这个程序是如何运行的

希望JAVA厉害的能给讲下这个程序是怎么运行的
想知道输出的结果
还有怎么运行的
怎么判断的

谢谢~~~


public class X
{
public static void main(String [] args)
{
try
{
badMethod();  
System.out.print("A");

catch (RuntimeException ex) /* Line 10 */
         { 
System.out.print("B"); 
    } 
catch (Exception ex1) 
         { 
System.out.print("C");

finally
         {
System.out.print("D"); 
         } 
System.out.print("E"); 


public static void badMethod() 

throw new RuntimeException(); 
}

------解决方案--------------------
参考一下这里.
http://www.360doc.com/content/12/0102/09/1824154_176605921.shtml
------解决方案--------------------
public class X
{
public static void main(String [] args)
{
try
{
badMethod();  //第二步: 调用该方法的程序不会继续执行下去,
  //而是搜索一个可以处理该异常的异常处理器,并执行其中的代码 
System.out.print("A");

catch (RuntimeException ex)//第三步:catch异常的时候要先抓范围小的再抓大的,找对应的异常,
   //执行相应的catch块,后面catch语句不再执行
        { 
System.out.print("B"); 
   } 
catch (Exception ex1) //不再执行
        { 
System.out.print("C");

finally //第四步: finally:不管有无异常发生,都会执行里面的代码
        {
System.out.print("D"); 
        } 
System.out.print("E");  //正常执行


public static void badMethod() 

throw new RuntimeException(); //第一步:遇到错误,方法立即结束,同时,抛出一个异常对象 
}
}