The Java pattern senior devs use to stop abusing exceptions for control flow
One of the biggest improvements in modern Java code is moving away from throwing exceptions for expected business cases.
Instead of throw new NotFoundException() or throw new InvalidInputException(), use