code: private static void expandThrowable(Throwable ex)
      {
          ex.printStackTrace(__printWriter);
  
          if (ex instanceof MultiException)
          {
              MultiException mx = (MultiException)ex;
              
              for (int i=0;i<mx.size();i++)
              {
                  __printWriter.print("["+i+"]=");
                  Throwable ex2=mx.getException(i);
                  expandThrowable(ex2);
              }
          }
          else
          {
              for (int i=0;i<__nestedEx.length;i++)
              {
                  try
                  {
                      Method getTargetException =
                          ex.getClass().getMethod(__nestedEx[i],__noArgs);
                      Throwable ex2=(Throwable)getTargetException.invoke(ex,(java.lang.Object[])null);
                      if (ex2!=null)
                      {
                          __printWriter.println(__nestedEx[i]+"():");
                          expandThrowable(ex2);
                      }
                  }
                  catch(Exception ignore){}
              }
          }
      }
docs: /* ------------------------------------------------------------