Answer: A Thread controls a process from the "run" method. Therefore, if a thread is to be interrupted, it will happen when the Thread process is executing some line in the "run" method. But the "run" method does not allow an InterruptedException to be thrown because a coder's "run" is overriding a JVM "run". Hence, such an Exception can only be caught in the run method itself. For example,

class A extends Thread {
   public void run () {
      try { sleep(1000); } catch (InterruptedException e) {}
   }
}

The following is not allowed:

class A extends Thread {
   public void run () throws InterruptedException {
      sleep(1000);
   }
}