if you want to call to the method go3(), the calling statement should be wrapped inside an appropriate 'try' block, or the calling method should be declared to "throws InterruptedException" or super type of InterruptedException.
But the method go2() attempts to call to the go3() method, without fulfilling above requirement. therefore a compile time error will be generated.
I still can't get the explanation point. Please advice.
First at all, please make sure that you know about checked exceptions. If you don't know about that, you have to learn more about exception handling. Because that is a very important part in exception handling. If you already know about checked/unchecked exceptions, consider the following example: