void (PsiReferenceList throwsList, PsiType catchType) { if (catchType instanceof PsiClassType classType) { final PsiClassType[] types = throwsList.getReferencedTypes(); for (PsiClassType type : types) { if (catchType.equals(type)) { return; } } final Project project = throwsList.getProject(); final PsiElementFactory factory = JavaPsiFacade.getElementFactory(project); final PsiJavaCodeReferenceElement referenceElement = factory.createReferenceElementByType(classType); throwsList.add(referenceElement); } else if (catchType instanceof PsiDisjunctionType disjunctionType) { final List<PsiType> disjunctions = disjunctionType.getDisjunctions(); for (PsiType disjunction : disjunctions) { addToThrowsList(throwsList, disjunction); } } }