Hello and welcome to our community! Is this your first visit?
Register
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
    Posts
    66
    Thanks
    8
    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:
    Code:
    /*
    CS182
    Excercise 5
    Ashley Glasser
    4/30/2011
     */
    // 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:
    Code:
    public class MessageTooLongException extends Exception
    {
    	public MessageTooLongException()
    	{
    		super("Message Too Long!");
    	}
    
    	public MessageTooLongException(String message)
    	{
    		super(message);
    		System.out.println("Message Exception invoked with an argument.");               
    	}
    
    }
    Why is it closing out the program?

  • #2
    God Emperor Fou-Lu's Avatar
    Join Date
    Sep 2002
    Location
    Saskatoon, Saskatchewan
    Posts
    16,987
    Thanks
    4
    Thanked 2,660 Times in 2,629 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'); 


  •  

    Posting Permissions

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