I'm not Terry, but I'll take a stab at this one.
Gabriel Ozeas wrote:If i'm not wrong, it's not permitted to throw others checked exceptions that weren't declared in the above hierarchy. Am i right?
One of the many things that we did in our project, in order to make it different from the Sun assignment, was to have a significant change in the method signatures in the provided interface. In particular, we have every method in the interface throw IOException. Since IOException is the parent of RemoteException (or to put it another, RemoteException IS-A IOException) we can easily throw RemoteException later and still meet the contract specified by the interface.
I don't have a copy of my book handy, or I would look up some more details - from memory we called this out to readers since it was very specifically different to the real project.