try{
output.format(\"%d %s %s %.2f%n\", input.nextInt(),
input.next(),input.next(),input.nextDouble());
} catch(FormatterClosedException formatterClosedExcept
In Java Exceptions are used for marking unexpected situations. For example parsing non-numeric String
to a number (NumberFormatException
) or calling a method on a null
reference (NullPointerException
). You can catch them in many ways.
try{
//some code
} catch (FormatterClosedException e1) {
e.printStackTrace() //very important - handles the Exception but prints the information!
} catch (NoSuchElementException e2) {
e.printStackTrace();
}
or using the fact, that they all extend Exception
:
try {
//somecode
} catch (Exception e) {
e.printStackTrace;
};
or since Java 7:
try {
//somecode
} catch (FormatterClosedException | NoSuchElementExceptione) {
e.printStackTrace;
};
You have to catch all checked exceptions
. It's due to the language grammar. On the other hand, there are unchecked exceptions
which doesn't necessarily need to be caught.
IllegalArgumentException
is unchecked exception and therefor doesn't need to be caught.
NoSuchInputException
can be thrown by input.next()
. That's why it's declared to be caught.
So:
Exception
s. input.next()
can throw NoSuchElementException
format
can throw FormatterClosedException
Document:
java.util.NoSuchElementException
is aRuntimeException
which can be thrown by different classes in Java like Iterator, Enumerator, Scanner or StringTokenizer.
In your case it is Scanner
. Its not from format
method.
It's just to be in the safer side(if next input is not given then throw this exception).
Sample code which shows the demo
public class NoSuchElementExceptionDemo{
public static void main(String args[]) {
Hashtable sampleMap = new Hashtable();
Enumeration enumeration = sampleMap.elements();
enumeration.nextElement(); //java.util.NoSuchElementExcepiton here because enumeration is empty
}
}
Output:
Exception in thread "main" java.util.NoSuchElementException: Hashtable Enumerator
at java.util.Hashtable$EmptyEnumerator.nextElement(Hashtable.java:1084)
at test.ExceptionTest.main(NoSuchElementExceptionDemo.java:23)
add another catch
with Exception
class. That is the parent class.
catch(Exception e){
//your message or
System.out.print(e.getMessage());
}
You can add catch
for every exception
that your code throws and in the end add this catch with this Exception parent class. If your exception
is not caught by any of the catch
then this will caught your exception.
It will catch all exceptions that is raised by your program.