On Sat, 22 May 2010, Arne Vajh?j wrote:
On 22-05-2010 15:05, Rhino wrote:
I'm thinking of a situation like completing a form in a GUI. The
customer has to enter his date of birth. Let's say that I can't use a
JSpinner for some reason; it can't do everything I need it to do. The
customer is given a simple JTextField for entering a date. Clearly,
the customer would have many opportunities to enter bad data. He
could type in 1985- 15-31 when he meant to type 1985-05-01; the first
value is obviously a bad date since there are only 12 months in the
year, not 15. My practice is to write edits that check for that kind
of mistake and generate an exception, typically
IllegalArgumentException, with a clear error message that reminds the
user that there is no such month as '15'. Naturally, the customer
might not be an English speaker so I put all such messages in
ResourceBundles so that other bundles can easily be added for any
languages that I support.
How would you handle such a situation?
Catch the exception but display something else that the exception text.
Exceptions texts are for log files to be handed over to developers.
For user input I don't even think that you should throw an exception.
Maybe just test and tell the user to correct.
Bad user input is not really exceptional enough to justify an exception.
I disagree. We've had arguments about the proper use of exceptions on
this newsgroup before, so i recognise that this is a matter where
opinions vary, but exceptions seem like a perfectly acceptable option
for dealing with bad user input to me. They might not be the right
solution in every situation, but they are an option that can be considered.
Of course, i wouldn't show the exception's error message to the user.
is a deep call stack to skip.
there.