I think it is accepted that as a general rule in Java (and perhaps any language with exception handling) one should try to avoid using exception handling to actually handle
There is a reason exceptions are objects. There is also a reason designers of the Java language split all Throwables into 2 main types: checked and unchecked.
is it a good idea to rely on an exception happening for certain business logic to occur?
Yes. Absolutely. You should read Chapter 9 of "Effective Java, Second Edition". It's all there. Nicely explained and waiting for you.