Checkstyle Javaルール

CheckstyleのJavaルールについて1つずつまとめます

CatchParameterName

CheckStyle公式ドキュメント

検証環境

Checkstyleバージョン:10.8.0
Javaバージョン:17


チェック概要

チェック追加バージョン
Checkstyle 6.14

catch句のパラメータ名が指定された正規表現にマッチしているかどうかをチェックする。

デフォルトの正規表現には、以下のような特徴がある。

  • 小文字2文字で始まり、大文字または小文字が1文字以上続く名前を許可する
  • 略称:eを許可する
  • 略称:exの省略を許可する
  • 略称:tの省略を許可する
  • e1やt2のような数字の略語はNG
  • pExceptionのような一文字の接頭辞はNG
  • ieやeeのような2文字の略語はNG
  • 文字以外を禁止

プロパティ

プロパティ デフォルト値 説明 追加バージョン
format Pattern "^(e|t|ex|[a-z][a-z][a-zA-Z]+)$" パラメータ名の正規表現 6.14

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="CatchParameterName"/>
    </module>
</module>

チェック実行例

public class MyClass {
    public void foo() {
        try {
        } catch (ArithmeticException e) {
        } catch (ArrayIndexOutOfBoundsException ex) { 
        } catch (Throwable t) {
        // NG パラメータ名の正規表現にマッチしない
        } catch (IndexOutOfBoundsException e123) {
        // NG パラメータ名の正規表現にマッチしない
        } catch (NullPointerException ab) {
        } catch (ArrayStoreException abc) {
        // NG パラメータ名の正規表現にマッチしない
        } catch (InterruptedException aBC) {
        } catch (RuntimeException abC) {
        } catch (Exception abCD) {
        }
    }
}

プロパティ設定あり

format

パラメータ名の正規表現

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="CatchParameterName">
            <property name="format" value="^[a-z][a-zA-Z0-9]+$"/>
        </module>
    </module>
</module>

チェック実行例

public class MyClass {
    public void foo() {
        try {
        } catch (ArithmeticException ex) {
        } catch (ArrayIndexOutOfBoundsException ex2) {
        } catch (IOException thirdException) { 
        // NG パラメータ名の正規表現にマッチしない
        } catch (Exception FourthException) {
        }
    }
}