Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Design Patterns
Expertise: Beginner
May 2, 1999

Looped Exceptions

Is there any way to catch exceptions repeatedly, instead of just once? For example, when creating a Date object with a String, an IllegalArgumentException can be generated and caught. In the catch statement, if an attempt is made to create the Date with another String, there isn't anything I can do if it also throws an exception. Is there some sort of looped catch statement?

There is no such thing as a looped catch statement in Java. Code that requires such a construct should probably be restructured. Sometimes an exception handler is forced to catch an exception, but this does not require looping. A common example is a socket I/O operation that generates a fatal IOException. It is often necessary to do some cleanup and call close() in the catch statement rather than a finally clause or later in the code. This call can also cause an exception, but the exception can be caught and ignored.

An exception is usually either fatal or recoverable. Recoverable exceptions are handled within the context of more general logic. For example, if you are reading user input and receive an invalid date, you would probably ask the user to re-enter the date. This would be handled in a loop and would require only one catch statement. For example:

do {
    String input = getInput();
    try {
      date = new Date(input);
      validInput = true;
    } catch(IllegalArgumentException e) {
      validInput = false;

} while(!validInput);
DevX Pro
Comment and Contribute








