@Override
  ExceptionLineRefiner.RefinerMatchResult matchSpecificExceptionElement(@NotNull PsiElement current) {
    PsiElement nextElement = PsiTreeUtil.nextVisibleLeaf(current);
    if (nextElement == null) return null;
    if (nextElement instanceof PsiJavaToken && (nextElement.textMatches("%") || nextElement.textMatches("/")) &&
        nextElement.getParent() instanceof PsiPolyadicExpression) {
      PsiExpression prevOperand = PsiTreeUtil.getPrevSiblingOfType(nextElement, PsiExpression.class);
      PsiExpression nextOperand = PsiUtil.skipParenthesizedExprDown(PsiTreeUtil.getNextSiblingOfType(nextElement, PsiExpression.class));
      if (prevOperand != null && TypeConversionUtil.isIntegralNumberType(prevOperand.getType()) &&
          nextOperand != null && TypeConversionUtil.isIntegralNumberType(nextOperand.getType())) {
        if(!PsiTreeUtil.isAncestor(prevOperand, current, false)) return null;
        while (nextOperand instanceof PsiUnaryExpression && ((PsiUnaryExpression)nextOperand).getOperationTokenType().equals(
          JavaTokenType.MINUS)) {
          nextOperand = PsiUtil.skipParenthesizedExprDown(((PsiUnaryExpression)nextOperand).getOperand());
        }
        if (nextOperand instanceof PsiLiteral) {
          Object value = ((PsiLiteral)nextOperand).getValue();
          if (value instanceof Number && ((Number)value).longValue() != 0) return null;
        }
        if (nextOperand == null) {
          return null;
        }
        return onTheSameLineFor(current, nextOperand, true);
      }
    }
    return null;
  }
@Override
  ExceptionLineRefiner.RefinerMatchResult matchSpecificExceptionElement(@NotNull PsiElement current)