Question: I was wondering how Java takes the following scenario

```
public static void main(String[] args) throws IndexOutOfBoundsException, CoordinateException, MissionException, SQLException, ParserConfigurationException {
    try {
        doSomething();
    } catch (Exception e) {
        e.printStackTrace();
    } 
}

```

In the above code, I am declaring the main function to throw many different exceptions, but inside the function, I am catching the generic Exception. I am wondering how java takes this internally? I.e., say `doSomething()` throws an IndexOutOfBounds exception, will the e.printStackTrace() get called in the last `catch (Exception e) {...}` block?

I know if an exception not declared in the throws area of the function gets thrown, the try/catch will handle it, but what about exceptions mentioned in the declaration?

Answer: 
In your case if ANY Exception is thrown or generated in `doSomething()` it will be caught in the try-catch block because of the `Exception e` you are catching.

`Exception` is the **parent** of all Exceptions. All Exceptions inherit from this class.
The exceptions, mentioned in the declaration, is to allow a method further up the call stack to handle it. In your case these exceptions, if your main method throws them, will get handled by runtime.

Source <http://docs.oracle.com/javase/tutorial/essential/exceptions/declaring.html>