I know its never a good idea to use exception as business logic in your java code. When is it OK to use exception handling for business logic?. However I have seen at my job that people are still doing this, I have raised my concerns and I've been told I was wrong / crazy.
I consistently see people throwing runtime exceptions to later have the advice controller catch them and respond to the client. To the people using this technique it is a simple solution to have a return type that is different then what their controller returns.
For more clarification: Lets say the app is calling out to another service over http and you get a 404. The application will throw an exception so that the advise controller will respond with a custom response.