Using such generic exception prevents calling methods from handling differently each kind of error.

The following code snippet illustrates this rule:

public void foo(String bar) throws Throwable { // Non-Compliant
  throw new RuntimeException("My Message");    // Non-Compliant
}

public void foo(String bar) {
  throw new MyRuntimeException("My Message");  // Compliant
}