@Override public void visitCatchBlock(CatchBlockTree tree) { complexity.addComplexityWithNesting(tree.catchToken()); visitWithNesting(()-> super.visitCatchBlock(tree)); }
@Override public void visitCatchBlock(CatchBlockTree tree) { complexity.addComplexityWithNesting(tree.catchToken()); visitWithNesting(()-> super.visitCatchBlock(tree)); }
@Test public void test() throws Exception { CatchBlockTree tree = parse("catch (ExceptionType $e) {}", PHPLexicalGrammar.CATCH_BLOCK); assertThat(tree.is(Kind.CATCH_BLOCK)).isTrue(); assertThat(tree.catchToken().text()).isEqualTo("catch"); assertThat(tree.openParenthesisToken().text()).isEqualTo("("); assertThat(tree.exceptionTypes()).hasSize(1); assertThat(tree.exceptionTypes().get(0).fullName()).isEqualTo("ExceptionType"); assertThat(tree.variable().variableExpression().text()).isEqualTo("$e"); assertThat(tree.closeParenthesisToken().text()).isEqualTo(")"); assertThat(expressionToString(tree.block())).isEqualTo("{}"); }
@Override public void visitTryStatement(TryStatementTree tree) { checkControlStructureOpenCurly(tree.tryToken(), tree.block().openCurlyBraceToken()); TokenVisitor tokenVisitor = new TokenVisitor(tree); // Check catch keyword for (CatchBlockTree catchBlock : tree.catchBlocks()) { checkCloseCurlyNextToKeyword(tokenVisitor.prevToken(catchBlock.catchToken()), catchBlock.catchToken()); } // Check finally keyword if (tree.finallyBlock() != null) { checkCloseCurlyNextToKeyword(tokenVisitor.prevToken(tree.finallyToken()), tree.finallyToken()); } super.visitTryStatement(tree); }
@Override public void visitTryStatement(TryStatementTree tree) { checkControlStructureOpenCurly(tree.tryToken(), tree.block().openCurlyBraceToken()); TokenVisitor tokenVisitor = new TokenVisitor(tree); // Check catch keyword for (CatchBlockTree catchBlock : tree.catchBlocks()) { checkCloseCurlyNextToKeyword(tokenVisitor.prevToken(catchBlock.catchToken()), catchBlock.catchToken()); } // Check finally keyword if (tree.finallyBlock() != null) { checkCloseCurlyNextToKeyword(tokenVisitor.prevToken(tree.finallyToken()), tree.finallyToken()); } super.visitTryStatement(tree); }
@Test public void multi_catch() throws Exception { CatchBlockTree tree = parse("catch (FirstException | SecondException | ThirdException $e) {}", PHPLexicalGrammar.CATCH_BLOCK); assertThat(tree.is(Kind.CATCH_BLOCK)).isTrue(); assertThat(tree.catchToken().text()).isEqualTo("catch"); assertThat(tree.openParenthesisToken().text()).isEqualTo("("); assertThat(tree.exceptionTypes()).hasSize(3); assertThat(tree.exceptionTypes().get(0).fullName()).isEqualTo("FirstException"); assertThat(tree.exceptionTypes().get(1).fullName()).isEqualTo("SecondException"); assertThat(tree.exceptionTypes().get(2).fullName()).isEqualTo("ThirdException"); assertThat(tree.variable().variableExpression().text()).isEqualTo("$e"); assertThat(tree.closeParenthesisToken().text()).isEqualTo(")"); assertThat(expressionToString(tree.block())).isEqualTo("{}"); }