@SuppressWarnings("unchecked")
	@Override
	public void validate(ProcessingEnvironment procEnv,
			RoundEnvironment roundEnv, TypeElement annotationType,
			AnnotationMirror annotation, ExecutableElement e) {
		AnnotationValue expectedExceptionTypes = AnnotationProcessingUtils
				.getAnnotationElementValue(procEnv, annotation,
						"expectedExceptions");
		AnnotationValue strictValue = AnnotationProcessingUtils
				.getAnnotationElementValue(procEnv, annotation, "strict");
		Boolean strict = (Boolean) strictValue.getValue();

		if (!matches(procEnv, strict, e.getThrownTypes(),
				getTypeMirrors((List<AnnotationValue>) expectedExceptionTypes
						.getValue()))) {
			procEnv.getMessager().printMessage(
					Diagnostic.Kind.ERROR,
					(String) AnnotationProcessingUtils
							.getAnnotationElementValue(procEnv, annotation,
									"errorMessage").getValue(), e, annotation,
					expectedExceptionTypes);
		}
	}