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.
I'm just going through the specs for the URLyBird assignment and have a question that I hope those who have passed will be able to shed some light on.
If the create method throws DuplicateKeyException, does this mean that the entire record must be unique in the database, ie. the primary key is a composite of all the fields? If the database itself hands out the id's to inserted records (ensuring they are unique), how is it that such an exception will be thrown? And furthermore, why does the method return an integer id if you are inserting a record with an id already? All this leads me to conclude that there can never be records that have the exact same field values in the database, a situation which seems illogical if there are 2 separate rooms at the same exact hotel on the same exact day.
Why does the find method throw RecordNotFoundException? You aren't searching for a specific record, just matches for criteria, so either there are n results or no results (i.e. not an exception)
My initial thought as far as handling these seemingly nonsensical exceptions thrown from the DBMain interface is to declare the exceptions as descendants of RuntimeException so they don't have to be catered for in my code. Do you think this is something the marker might take exception to (pun intended )?
Champ, these questions have already been answered a million of times, and there have been many good discussions about them. Please, do a search by the terms "DuplicateKeyException" and something like "find method RecordNotFoundException".