Throwable.printStackTrace(...) prints a throwable and its stack trace to some stream.

Loggers should be used instead to print throwables, as they have many advantages:

The following code:

try {
  /* ... */
} catch(Exception e) {
  e.printStackTrace();        // Non-Compliant
}

should be refactored into:

try {
  /* ... */
} catch(Exception e) {
  LOGGER.log("context", e);   // Compliant
}