Hello and welcome to our community! Is this your first visit?
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New Coder
    Join Date
    Nov 2005
    Thanked 0 Times in 0 Posts

    Arrow Exception Closes Program!

    I'm trying to create a program for class that throws an exception if the string entered is longer than 20 characters. Once the exception is thrown, it is supposed to continue and say: "Do you want to enter another line?" But, it keeps ending prematurely after the exception is thrown.

    Here's my program:
    Excercise 5
    Ashley Glasser
    // Excercise 5 MessageTooLong.java
    import java.util.Scanner;
    public class MessageTooLong extends Exception {
            public static void main(String args[])
            throws MessageTooLongException
    		Scanner keyboard = new Scanner(System.in);
     String line;
     char preference;
     int length;
    boolean go = true;
        while (go) {
     System.out.println("Enter a line of text.");
     System.out.println("Use no more than 20 characters.");
     line = keyboard.next();
    length = line.length();
         if (length <= 20)
                        System.out.println("You entered " + length + " characters, which is an acceptable length.");
                         System.out.println("Would you like to enter another line?");
     System.out.println("Enter 'y' to continue or 'n' to quit.");
            preference = keyboard.next().charAt(0);
            if ((preference == 'y') || (preference == 'Y')) {
                go = true;
            } else {
                go = false;
          if (length > 20)
                         throw new MessageTooLongException();
    And here's my exception:
    public class MessageTooLongException extends Exception
    	public MessageTooLongException()
    		super("Message Too Long!");
    	public MessageTooLongException(String message)
    		System.out.println("Message Exception invoked with an argument.");               
    Why is it closing out the program?

  2. AdSlot6
  3. #2
    God Emperor Fou-Lu's Avatar
    Join Date
    Sep 2002
    Saskatoon, Saskatchewan
    Thanked 2,662 Times in 2,631 Posts
    Of course, the main method is throwing an exception so you're JVM has to deal with it.
    I don't really see a purpose of tossing an exception at all. Since you would require the code to check if it has entered >= 20 in the first place, the exception becomes pointless since you would throw it and catch it yourself anyway. If you were to use this in something like a JDialog, than that would make a little more sense since it will be handled outside of the controlling program.
    PHP Code:
    header('HTTP/1.1 420 Enhance Your Calm'); 
    Been gone for a few months, and haven't programmed in that long of a time. Meh, I'll wing it ;)


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts