title: Programmatically determining the cause of IOException?
body: <p>Is there any way to programmatically differentiate between what caused an IOException? For example Java will throw an IOException, if there was an error during writing. How can I tell, if it's something like access violation, if the Disk is out of free space, if someone disconnected the the network drive, or other things?</p>
  
  <p>I can't really parse the Message since, there does not seem to be any standardized message format, Sun (or Oracle now I guess) doesn't seem to have any sort of standardized format.</p>
  
  <p>(I need to use Java to fix a very broken system at work.)</p>