If you throw a general exception type, such as ErrorException, RuntimeException, or Exception in a library or framework, it forces consumers to catch all exceptions, including unknown exceptions that they do not know how to handle. Instead, either throw a subtype that already exists in the Standard PHP Library, or create your own type that derives from Exception. == Noncompliant Code Example ---- throw new Exception(); // Noncompliant ---- == Compliant Solution ---- throw new InvalidArgumentException(); // or throw new UnexpectedValueException(); ---- include::../see.adoc[] ifdef::env-github,rspecator-view[] == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]