This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
For readRecord(), updateRecord(), deleteRecord(), I rethrow IOException as RecordNotFoundException. I am not sure how to handle IOEception exceptions for createRecord(). It only throws DuplicateKeyException (which never occur given the specs). Swallowing the IOException is bad but rethrow it as DuplicateKeyException is not correct. Any idea?