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) {
  throw new RuntimeException("My Message"); // Non-Compliant
}

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