Why do I have to catch an exception when I use System.in.read()?
System.in is an InputStream, and like any InputStream, an I/O
error may occur when you read from it. For example, the Java
program may have been run as a background process with no
standard input, causing an error during a read attempt.
InputStream.read() throws an IOException if an error occurs
while reading from the stream. This exception is not derived
from RuntimeException and must be caught or else your program
will not compile.