What throws an IOException in Java?

Zaq picture Zaq · Nov 4, 2012 · Viewed 162.2k times · Source

java.io.IOException seems to be the most common type of exception, and coincidentally, it seems to also be the most ambiguous.

I keep seeing the throws IOException whenever writing with sockets, files, etc. I've never actually had one fired on me, however, so I'm wondering what it is that is supposed to fire the exception. The documentation isn't very helpful in explaining what's going on:

Signals that an I/O exception of some sort has occurred. This class is the general class of exceptions produced by failed or interrupted I/O operations.

What are some instances where an IOException would be thrown, and how is it supposed to be used?

Answer

Yogendra Singh picture Yogendra Singh · Nov 4, 2012

Assume you were:

  1. Reading a network file and got disconnected.
  2. Reading a local file that was no longer available.
  3. Using some stream to read data and some other process closed the stream.
  4. Trying to read/write a file, but don't have permission.
  5. Trying to write to a file, but disk space was no longer available.

There are many more examples, but these are the most common, in my experience.