You learned that multiple catch blocks let you respond differently to different errors. An out_of_range error might prompt for retry, while invalid_argument might show usage help.
Catch block order determines which handler runs. Put the most specific types first. A catch for std::exception will match anything, so it must come last as a fallback. First match wins.
Add a catch-all fallback.