The task gets us to take a pre-Java 7 try-catch-finally and update it using a try-with-resources. The code shown below is the task is in its untouched original form hence the errors shown when it is verified. I noticed on Line 14
public static void main(String[] args) throws IOException {
On line 25 & 26
catch (IOException e) {
            System.out.println("Something went wrong : " + e);
Question Why is the throws IOExeception on line 14 required when the purpose of the try-catch block is to catch IOExeception? I note on the Solution for the task the throws IOExeception is omitted and works fine but if you remove it in the task it reports an uncaught IOException. Any thoughts?