well what you're talking about is checked & unchecked exceptions.
unchecked exceptions should extend RuntimeException (they flow all the way up to the top of the stack unless you specifically catch it and do something w/ it) this is what the springframework uses.
checked exceptions are caught and handled with.
it is always preferred to do catch them and keep the original message
throw new BusinessLogicException(e);
... safe rule of thumb is to have business logic exceptions checked, and handled for whatever reason or however.. and system problems (sql, dataccess, etc unchecked).
hope that helps www.binaryfrost.com