I use exceptions for exceptional behaviour, and not too frequently. When debugging crashes, I frequently use break-on-exception, so if your code is using exceptions to handle things that normally occur, I shall be quietly fuming at you. Use them when things have gone wrong in an unexpected way.
Acceptable example: server your code relies on is unavailable, so your service cannot do anything meaningful.
Example that means I'm annoyed at your code: user entered a number greater than 100, as input to your function which expects a number <=100.
In fact, if you're working on a user-facing application, the user probably shouldn't be able to do anything that generates an exception.
This is a very grey area though, so feel free to upvote/downvote me if you agree/disagree. If you disagree please post a comment saying why - I'm curious to hear other guidelines/rules/metrics.