You'll build an input validator that checks user data for several conditions and throws different exceptions for different violations.
The caller catches each type and responds appropriately. Real programs face many error conditions: out of range values, invalid formats, missing data, and more. Using different exception types for different errors lets you handle each case in particular.
You might retry some errors and abort on others. This problem teaches multiple catch blocks and exception hierarchies.
The order of catch blocks matters: the first matching block handles the exception.