The __set and __get will be very slow since you are waiting for exceptions (exceptions are not appropriate in this case). A better approach is to extend CAttributeCollection and implement IApplicationComponent. You will then get those __set and __get et.al. features for free.