@Override public boolean accept(@NotNull HighlightInfo highlightInfo, @Nullable PsiFile file) { if (null != file && HighlightSeverity.ERROR.equals(highlightInfo.getSeverity())) { final String description = StringUtil.notNullize(highlightInfo.getDescription()); if (HighlightInfoType.UNHANDLED_EXCEPTION.equals(highlightInfo.type) && (StringUtil.startsWith(description, UNHANDLED_EXCEPTION_PREFIX_TEXT) || StringUtil.startsWith(description, UNHANDLED_EXCEPTIONS_PREFIX_TEXT) || StringUtil.startsWith( description, UNHANDLED_AUTOCLOSABLE_EXCEPTIONS_PREFIX_TEXT))) { final String unhandledExceptions = description.substring(description.indexOf(':') + 1).trim(); final String[] exceptionFQNs = unhandledExceptions.split(","); if (exceptionFQNs.length > 0) { final PsiMethod psiMethod = PsiTreeUtil.getParentOfType( file.findElementAt(highlightInfo.getStartOffset()), PsiMethod.class); if (null != psiMethod) { return !SneakyTrowsExceptionHandler.isExceptionHandled(psiMethod, exceptionFQNs); } } } } return true; }
public static boolean isLazyGetterHandled(HighlightInfo highlightInfo, PsiFile file) { PsiElement element = file.findElementAt(highlightInfo.getStartOffset()); if (!(element instanceof PsiIdentifier)) { return false; } PsiField field = PsiTreeUtil.getParentOfType(element, PsiField.class); if (field == null) { return false; } final PsiAnnotation getterAnnotation = PsiAnnotationSearchUtil.findAnnotation(field, Getter.class); return null != getterAnnotation && PsiAnnotationUtil.getBooleanAnnotationValue(getterAnnotation, "lazy", false); }