K here we go :
Q1) Why should a method "throws" an exception. What is the benefit we get out of it?
A method should mention that it throws an exception when it can't handle the exception that it throws (the method must specify this behavior so that callers of the method can guard themselves against that exception ).
Q2) What happens internally when a method "throws" an exception?
When a method throws an exception the control is transferred to the caller of the method and its whether the caller has necessary catch block to handle the exception thrown by the method. If the caller has a catch block to deal with the exception the exception will be dealt and the program continues. If the caller doesn't have necessary means to handle the exception that's been thrown at it, the exception will be handled by the default exception handler.
For your 3rd question read this block taken from the complete reference book :
All exception types are subclasses of the built-in class Throwable. Thus, Throwable is at the top of the exception class hierarchy. Immediately below Throwable are two subclasses that partition exceptions into two distinct branches. One branch is headed by Exception. This class is used for exceptional conditions that user programs should catch. This is also the class that you will subclass to create your own custom exception types. There is an important subclass of Exception, called RuntimeException. Exceptions of this type are automatically defined for the programs that you write and include things such as division by zero and invalid array indexing.
The other branch is topped by Error, which defines exceptions that are not expected to be caught under normal circumstances by your program. Exceptions of type Error are used by the Java run-time system to indicate errors having to do with the run-time environment, itself. Stack overflow is an example of such an error. This chapter will not be dealing with exceptions of type Error, because these are typically created in response to catastrophic failures that cannot usually be handled by your program.