Es una clase que hereda de Exception, es la más general cuando se trata de trabajar con funcionalidades IO (Input/Output) ¿qué quiere decir Input o Output? que trabajas haciendo lectura o escritura en tu Hard Disk o disco duro. Por ejemplo, un IOException te podría servir si estás implementando una funcionalidad para cargar datos de un archivo, grabar datos en un archivo, leer arreglos de bytes de un determinado lugar o ese tipo de cosas. El IOExpcetion, repito es el más general, las clases más especificas son FileNotFound Exception, ObjectStream Exception, etc.