This depends somewhat on what you want the program to do when incorrect response is set.
If it's a 100% critical thing and the program should never proceed in such a case, throw an exception.
If it needs to be handled correctly by the caller and continue execution of the program, you can do either one, but I personally prefer #2. Why?
A great discussion of exceptions for error handling is here - it does not directly address exceptions vs. return codes but a very clear list of downsides of criticisms of checked exceptions applies to this discussion as well (again, this is assuming the error you're handling is not a super-critical one which should cause program termination, in which case an unchecked exception is proper).