Implement various kinds of error handling and resource management.
An important point of programming is how to handle errors and close resources even if errors occur.
This exercise requires you to handle various errors. Because error handling is rather programming language specific you'll have to refer to the tests for your track to see what's exactly required.
This exercise requires you to handle exceptions. An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the program's instructions.
In Java, there are two types of exceptions: checked and unchecked exceptions.
Checked exceptions are the exceptions that are checked at compile time.
You have to declare them in the method signature of any method that can throw a checked exception and handle or rethrow them when calling any method that can throw a checked exception.
This is because checked exceptions are meant to be handled at runtime, i.e. they are errors you can recover from.
They're often used when a method can't return any valid result, for example a search method which hasn't found the item it was searching for.
It's an alternative to returning null or a error code. A checked exception is better than those alternatives because it forces the user of the method to consider the error case.
Unchecked exceptions are the exceptions that are not checked at compile time.
You don't have to declare them in the method signature of methods that can throw an unchecked exception and handle or rethrow them when calling any method that can throw an unchecked exception.
Unchecked exceptions are mean to be used for any error than can't be handled at runtime, e.g. running out of memory.
Go through the setup instructions for Java to install the necessary dependencies:
https://exercism.io/tracks/java/installation
You can run all the tests for an exercise by entering the following in your terminal:
$ gradle testUse
gradlew.batif you're on Windows
In the test suites all tests but the first have been skipped.
Once you get a test passing, you can enable the next one by removing the
@Ignore("Remove to run test") annotation.
It's possible to submit an incomplete solution so you can see how others have completed the exercise.