Use a logging framework instead of printStackTrace() when handling exceptions. printStackTrace() can be useful during development for quick debugging, but it is not suitable for production code.
Non-Compliant Code Examples
classFoo{voidbar(){try{// removed for brevity}catch(MyExceptionmyException){myException.printStackTrace();}catch(Exceptione){if("foo"!="bar"){e.printStackTrace();}}}}
Compliant Code Examples
classFoo{voidbar(){try{// removed for brevity}catch(MyExceptionmyException){myException.printStackTrace();}catch(Exceptione){if("foo"!="bar"){e.printStackTrace();}}}}
importjava.util.logging.Logger;classFoo{privatestaticfinalLoggerlogger=Logger.getLogger(Foo.class.getName());voidbar(){try{// Code that may throw an exceptionthrownewRuntimeException("Something went wrong!");}catch(Exceptione){// Log the exception using the Java loggerlogger.severe("An error occurred:");logger.severe(e.toString());if("foo"!="bar"){// Log the exception again if neededlogger.severe("An error occurred in an additional context:");logger.severe(e.toString());}}}}
シームレスな統合。 Datadog Code Security をお試しください
Datadog Code Security
このルールを試し、Datadog Code Security でコードを解析する
このルールの使用方法
1
2
rulesets:- java-best-practices # Rules to enforce Java best practices.