Why give an Error?
===

I just want to find out why this piece of code throws an Error. The Error is :

    "Exception in thread "Thread-1" java.lang.Error"

    [Code]
        class Salmon extends Thread
        {
          public static long id;
          public void run()
        {
            for(int i = 0;i<4; i++){
              if(i==2&& id ==Thread.currentThread().getId()){
              //if(i==2){
                  new Thread(new Salmon()).start();
                  throw new Error();
           }
              System.out.println(i + " ");
          }
         }
      public static void main(String[] args)
       {
         Thread t1 = new Salmon();
          id = t1.getId();
          t1.start();
       }
     }
    [/code]