All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.l10n.java.rules.squid.S2096.html Maven / Gradle / Ivy

There is a newer version: 8.6.0.37351
Show newest version

There's no reason for a main method to throw anything. After all, what's going to catch it?

Instead, the method should itself gracefully handle any exceptions that may bubble up to it, attach as much contextual information as possible, and perform whatever logging or user communication is necessary, and exit with non-zero (i.e. non-success) exit code if necessary.

Noncompliant Code Example

public static void main(String args[]) throws Exception { // Noncompliant
  doSomething();

Compliant Solution

public static void main(String args[]) {
 try {
    doSomething();
  } catch (Throwable t) {
    log.error(t);
    System.exit(1);  // Default exit code, 0, indicates success. Non-zero value means failure.
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy