use IO exceptions instead of generic ones in IO classes
replace remaining generic exceptions
Merge pull request #122 from oker1/io_exceptions

Use IO exceptions instead of generic ones in IO classes