| Author |
Looping in exceptions
|
Carlos Obregon
Greenhorn
Joined: May 26, 2009
Posts: 18
|
|
I'm trying to catch a number from a Scanner. I thought that I could catch the InputMismatchException and re-ask the user to submit another real number.
I use this but if I raise the exception it keeps in an infinite loop:
Thanks!
|
 |
Campbell Ritchie
Sheriff
Joined: Oct 13, 2005
Posts: 32620
|
|
Because of the exception, the done variable remains false for ever. The Scanner continues to look at the token which wasn't a number, so consume that token with a call to in.next(); inside the catch. No need to do anything with that token.
Then you can enter a new token, and the loop can go round once more.
|
 |
Rob Spoor
Sheriff
Joined: Oct 27, 2005
Posts: 19216
|
|
You shouldn't use exceptions this way if there are valid checking methods available.
An improved version:
|
SCJP 1.4 - SCJP 6 - SCWCD 5
How To Ask Questions How To Answer Questions
|
 |
 |
|
|
subject: Looping in exceptions
|
|
|