Here interrupt() method is called on object a which is not a thread of execution.(its just an instance of subclass of Thread) And a separate thread is started using t.start(). Thats the reason for the answer!
And see the API documentation of interrupt() method!
It will throw InterruptedException only if the thread is currently blocked(either sleeping,waiting or blocked for object locks). Otherwise it will just set the interrupted flag and run as it is.