Sorry, this question is not related to the task, I just do not know where to put it. Regarding this simple code, why after throwing an exception, it keeps printing "Tick" ? public class Main { public static void main(String[] args) throws InterruptedException { Clock clock = new Clock(); Thread clockThread = new Thread(clock); clockThread.start(); Thread.sleep(2000); clockThread.interrupt(); } static class Clock implements Runnable{ public void run() { Thread current = Thread.currentThread(); while (!current.isInterrupted()) { try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Tick"); } } }}