Howdy, Daniel!
1) log and ignore
Hum... I don't think that would be a good approach. If an IOException occurs, the execution of the program shouldn't continue.
2) use a RuntimeException
I think that, in this case, it is the best option, especially because the methods of the interface do not include IOException in their signatures.
3) subclass (for example) RecordNotFoundException
Hum... no. Because IOException isn't a RecordNotFoundException.
What I did was create a record cache, so that I didn't have to deal with these exceptions. When the application starts, all records are put in a cache, and when the application finishes, everything is written back to the .db file. So, if you call update(), then no way an IOException will occur.
Cheers, Roberto Perillo
SCJP, SCWCD, SCJD, SCBCD