Como capturar uma exceção de um thread

Eu tenho a classe principal do Java, na classe, inicio um novo thread, no principal, ele aguarda até que o thread morra. Em algum momento, lanço uma exceção de tempo de execução do encadeamento, mas não consigo capturar a exceção lançada no encadeamento na classe principal.

Aqui está o código:

public class Test extends Thread
{
  public static void main(String[] args) throws InterruptedException
  {
    Test t = new Test();

    try
    {
      t.start();
      t.join();
    }
    catch(RuntimeException e)
    {
      System.out.println("** RuntimeException from main");
    }

    System.out.println("Main stoped");
  }

  @Override
  public void run()
  {
    try
    {
      while(true)
      {
        System.out.println("** Started");

        sleep(2000);

        throw new RuntimeException("exception from thread");
      }
    }
    catch (RuntimeException e)
    {
      System.out.println("** RuntimeException from thread");

      throw e;
    } 
    catch (InterruptedException e)
    {

    }
  }
}

lguém sabe o porqu

questionAnswers(14)

yourAnswerToTheQuestion