EN JP CN

UMC.SYSOUT

UMC.SYSOUT

System.exit()、System.gc() などの望ましくない可能性のあるメソッドに関連した "UMC 望ましくないメソッド呼び出し" グループのエラーです。System.out.println()、System.err.println() などのデバッグ表示も好ましくない可能性があります。警告 UMC.SYSOUT は、System.out ストリームの print メソッドの呼び出しが存在する場合に表示されます。

脆弱性とリスク

成熟したアプリケーションにおいては、この呼び出しを 1 つのロギング モジュールおよび機能コンソールの出力に限定する必要があります。そうでない場合には、誤使用の診断となり、修正が必要となります。

軽減と防止

syserr のプリントの呼び出しを Logger モジュールの呼び出しに置き換えます。stdout のプリントの呼び出しを Logger の呼び出しに置き換えるか、printRawToUser() のような専用メソッドの呼び出しに置き換えます。

例 1

9      public int internalCalculateSum(int x, int y) {
10         if (x < 0 || y < 0) {
11             System.out.println("XXX: got strange arguments!");
12         }
13         return x + y;
14     }

UMC.SYSOUT が 11 行目に対して報告されています。System.out メソッド呼び出しを使用したデバッグ表示は好ましくありません。