...
The exceptions from getObjective() also align with getActivity(). But the semantics do not. The OSID Consumer is asking for an Activity and to be told the Activity does not exist when the Id reference of the Objective was not found is a problem. The NotFoundException in getActivity() describes the Activity, not the Objective nor any other call this method implementation may use. The fact that we decided to implement this method in such a way to cause this error condition means our service is broken when getObjective() tosses a NotFoundException at us. It should be caught and not allowed to pass through.
When acting as an OSID Consumer within an OSID Provider, look at the defined exceptions and to what they pertain in ordrer to know what to catch, not muddle through by adding try/catch blocks when the compiler complains.
Method Factoring
Passing The Buck
...