Does DataInputStream.close() throw an exception?
Yes, it throws an IOException
catch{} Block
So there is a problem.
The close() method inside the catch{} block
throws an IOException which is not caught.
// Loop with problems
try
{
while ( true )
sum += instr.readInt();
}
catch ( EOFException eof )
{
System.out.println( "The sum is: " + sum );
instr.close(); <—— throws IOException
}
catch ( IOException eof ) <—— this catch is for the try{} block
{ not for the previous catch{} block
System.out.println( "Problem reading input" );
instr.close(); <—— throws IOException
}
There are various ways to deal with this.
One possibility is not to catch the exception that close()
throws.
Then the method header must be
public static void main(String[] args) throws IOException