IMHO It's actually the opposite. You should not use exceptions to implement general application logic. Exceptions addresses some unexpected, illogical or critical behavior which is not a part of general application logic. If some developer forgot to check a documented error code, it means the solution had an issue.