Why does the 'throws' keyword matter in this design?
Why design custom exceptions?
How do nested try-catch blocks handle exceptions?