@Override
  public void visitTryStatement(@NotNull PsiTryStatement statement) {
    super.visitTryStatement(statement);
    if (!hasErrorResults()) {
      UnhandledExceptions thrownTypes = HighlightUtil.collectUnhandledExceptions(statement);
      if (thrownTypes.hasUnresolvedCalls()) return;
      for (PsiParameter parameter : statement.getCatchBlockParameters()) {
        HighlightUtil.checkExceptionAlreadyCaught(parameter, myErrorSink);
        if (!hasErrorResults()) {
          HighlightUtil.checkExceptionThrownInTry(parameter, thrownTypes.exceptions(), myErrorSink);
        }
        if (!hasErrorResults()) {
          HighlightUtil.checkWithImprovedCatchAnalysis(parameter, thrownTypes.exceptions(), myFile, myErrorSink);
        }
      }
    }
  }
@Override
  public void visitTryStatement(@NotNull PsiTryStatement statement)