Re: Question about try, catch
digibooster@gmail.com wrote:
How do I make the code go back so that once user type more than 20
characters in the string, it will print a message and then continue to
process more strings?
Don't exit the program upon receiving an exception. Put the try {} catch {}
logic entirely inside your processing loop.
Exception classes pretty much never should control program flow, as the
System.exit() call in StringTooLongException does. Exceptions by their very
name are for exceptions, and should not take control. Think of them as clever
value objects.
You should seriously consider extending java.lang.Exception in your
StringTooLongException class.
And please do not embed TAB characters in your postings to Usenet.
try{
while (!(strInput.equals("DONE"))){
The try should be inside the while.
....
}
....
}
catch(Exception e){
StringTooLongException error = new StringTooLongException("Total
string character now is larger than 20 characters");
error.EndHere();
Of course the program will not continue now!
}
}
}
class StringTooLongException
extends Exception
{
String statement = "";
Tnis initialization is completely superfluous. If you extend Exception, you
don't need this member anyway.
public StringTooLongException(String myError){
super( myError );
statement = myError;
no longer needed
System.out.println(statement);
Better not to embed such a statement in a constructor.
}
public void EndHere(){
System.out.println("please try again");
System.exit(0);
Not advisable from an Exception.
}
}
- Lew