# Checks for blocks |

## EmptyBlock #### Description Checks for empty blocks. #### Properties
name | description | type | default value
--- | --- | --- | ---
option | policy on block contents | block policy | stmt
tokens | blocks to check | subset of tokens LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF, LITERAL_FOR, LITERAL_TRY, LITERAL_WHILE, INSTANCE_INIT STATIC_INIT | all tokens
#### Examples To configure the check:
    <module name="EmptyBlock"/>
To configure the check for the text policy and only catch blocks:
    <module name="EmptyBlock">
        <property name="option" value="text"/>
        <property name="tokens" value="LITERAL_CATCH"/>
    </module>
#### Package com.puppycrawl.tools.checkstyle.checks.blocks #### Parent Module TreeWalker ## LeftCurly #### Description Checks for the placement of left curly braces ('{') for code blocks. The policy to verify is specified using property option. Policies eol and nlow take into account property maxLineLength. #### Properties
name | description | type | default value
--- | --- | --- | ---
option | policy on placement of a left curly brace ('{') | left curly brace policy | eol
maxLineLength | maximum number of characters in a line | integer | 80
tokens | blocks to check | subset of tokens CLASS_DEF, CTOR_DEF, INTERFACE_DEF, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF | all tokens
#### Examples To configure the check:
    <module name="LeftCurly"/>
To configure the check to apply the nl policy to type blocks:
    <module name="LeftCurly">
        <property name="option" value="nl"/>
        <property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>
    </module>
#### Package com.puppycrawl.tools.checkstyle.checks.blocks #### Parent Module TreeWalker ## NeedBraces #### Description Checks for braces around code blocks. #### Properties
name | description | type | default value
--- | --- | --- | ---
tokens | blocks to check | subset of tokens LITERAL_DO, LITERAL_ELSE, LITERAL_IF, LITERAL_FOR, LITERAL_WHILE | all tokens
#### Examples To configure the check:
    <module name="NeedBraces"/>
To configure the check for if and else blocks:
    <module name="NeedBraces">
        <property name="tokens" value="LITERAL_IF, LITERAL_ELSE"/>
    </module>
#### Package com.puppycrawl.tools.checkstyle.checks.blocks #### Parent Module TreeWalker ## RightCurly #### Description Checks the placement of right curly braces ('}') for else, try, and catch tokens. The policy to verify is specified using property option. #### Properties
name | description | type | default value
--- | --- | --- | ---
option | policy on placement of a right curly brace ('}') | right curly brace policy | same
tokens | blocks to check | subset of tokens LITERAL_CATCH, LITERAL_ELSE, LITERAL_TRY | LITERAL_CATCH, LITERAL_ELSE, LITERAL_TRY
#### Examples To configure the check:
    <module name="RightCurly"/>
To configure the check with policy alone for else tokens:
    <module name="RightCurly">
        <property name="option" value="alone"/>
        <property name="tokens" value="LITERAL_ELSE"/>
    </module>
#### Package com.puppycrawl.tools.checkstyle.checks.blocks #### Parent Module TreeWalker ## AvoidNestedBlocks #### Description Finds nested blocks, i.e. blocks that are used freely in the code. Rationale: Nested blocks are often leftovers from the debugging process, they confuse the reader. For example this Check finds the obsolete braces in
     public void guessTheOutput()
     {
         int whichIsWich = 0;
         {
             int whichIsWhich = 2;
         }
         System.out.println("value = " + whichIsWhich);
     }
and debugging / refactoring leftovers such as
    // if (conditionThatIsNotUsedAnyLonger)
    {
        System.out.println("unconditional");
    }
A case in a switch statement does not implicitly form a block. Thus to be able to introduce local variables that have case scope it is necessary to open a nested block. This is supported, set the allowInSwitchCase property to true and include all statements of the case in the block.
    switch (a)
    {
        case 0:
            // Never OK, break outside block
            {
                x = 1;
            }
            break;
        case 1:
            // Never OK, statement outside block
            System.out.println("Hello");
            {
                x = 2;
                break;
            }
        case 1:
            // OK if allowInSwitchCase is true
            {
                System.out.println("Hello");
                x = 2;
                break;
            }
    }
#### Properties
name | description | type | default value
--- | --- | --- | ---
allowInSwitchCase | Allow nested blocks in case statements | boolean | false
#### Examples To configure the check:
    <module name="AvoidNestedBlocks"/>
#### Package com.puppycrawl.tools.checkstyle.checks.blocks #### Parent Module TreeWalker

Back to the Checkstyle Home Page

Copyright © 2002-2003 Oliver Burn. All rights Reserved.