Exceptions

Classic programmed-learning exercises, refreshed for modern Java and presented in the current MrStyner.com portfolio style.

Modern Java noteThis archive has been refreshed for Java 25 LTS. Core language concepts remain useful, while outdated setup instructions and browser-era Java are labeled or replaced. Java 26 is the current feature release; Java 25 is used here as the stable teaching baseline.
go to previous page   go to home page   hear noise   go to next page

What do you suppose happens if the user types in an integer value, like 211?

Answer:

The characters are converted into a double.

Exceptions

If the input characters can be converted into a double, then that is done, even if the input characters lack a decimal point.

If the input characters can NOT be converted into a double, then Java throws an exception and the program halts. (A later chapter will discuss how to deal with exceptions.) For example:

C:/temp>java DoubleDouble
Enter a double: rats
Exception in thread "main" java.util.InputMismatchException
        at java.util.Scanner.throwFor(Unknown Source)
        at java.util.Scanner.next(Unknown Source)
        at java.util.Scanner.nextDouble(Unknown Source)
        at DoubleDouble.main(DoubleDouble.java:14)

If the input starts with characters that can be converted into a double followed by one or more spaces, then those characters are converted regardless of what follows. For example:

C:/temp>java DoubleDouble
Enter a double: 3.14 and more characters
value: 3.14 twice value: 6.28

A subsequent call to a method that expects digits (such as nextDouble()) will try to convert the "and" and will throw an exception.

QUESTION 4:

Will the following input work with the above program?

C:/temp>java DoubleDouble
Enter a double: -97.65

?????