private Object getBeanPropInternal(Object object, Object key) throws PropertyAccessException {
   try {
     return method.invoke(object, key);
   } catch (ClassCastException e) {
     throw PropertyUtility.getMismatchException(method, object, e);
   } catch (InvocationTargetException e) {
     throw PropertyUtility.getInvocationTargetException(method, e);
   } catch (IllegalAccessException e) {
     throw PropertyUtility.getIllegalAccessException(method, e);
   } catch (IllegalArgumentException e) {
     throw PropertyUtility.getIllegalArgumentException(method, e);
   }
 }