I think the main hit to performance you are going to see (assuming the code in question is executed at a very high frequency) will be from garbage collection.
One trivial example (this you do actually see in production code every now and then ...) would be having password verification logic like:
if (!password.equals(correctPassword)) { throw new IncorrectPasswordException(); }
and then ...
catch (final IncorrectPasswordException ex) { //some output or so }
... instead of simply never throwing anything and just handling this via conditionals. You will eventually have to clean up all those IncorrectPasswordException from memory.
In this case overusing exceptions actually will become pretty costly by turning simple evaluations into object instantiations that cost you memory and even more importantly eventually cost you precious CPU cycles for reclaiming that memory via garbage collection.
try...catchwill basically have no influence on the performance. But throwing exceptions may have. And it may be severe. Creating the stack trace can really be costly. Read more about this at shipilev.net/blog/2014/exceptional-performanceIOExceptioninRunnable#run) or you can do something really meaningful about it. Other uses just obfuscate the code.