Well, this is not really an issue then ;-) I mean, you're not allowed to throw checked exception, so I don't see anything wrong in you not being allowed to throw your ConfigurationException unless it's a RuntimeException.
We need to check if you can actually declare "throws Exception" and go with that, in any case that's an edge case. The code for the validation in any case is as follows:
public static void assertNoCheckedExceptionsAreThrown(final Method method, Class<? extends Annotation> annotation)
{
Class<?>[] declaredExceptions = method.getExceptionTypes();
for (int i = 0; i < declaredExceptions.length; i++)
{
Class<?> exception = declaredExceptions[i];
if (!exception.isAssignableFrom(RuntimeException.class))
{
throw new InjectionException(BundleUtils.getMessage(bundle, "METHOD_CANNOT_THROW_CHECKED_EXCEPTIONS", new Object[]{ getAnnotationMessage(annotation) , method}));
}
}
}