2020-12-21 15:38:52 +01:00
Instances of classes that do not derive from the "Throwable" interface cannot be used in a PHP "throw" statement.
2021-02-02 15:02:10 +01:00
2020-12-21 15:38:52 +01:00
Many built-in exceptions such as "Exception" and the SPL exception classes do implement the "Throwable" interface and can be extended when creating custom exceptions.
2021-02-02 15:02:10 +01:00
2020-12-21 15:38:52 +01:00
This rule raises an issue when an instance of a class that does not implement the "Throwable" interface is used in a "throw" statement .
== Noncompliant Code Example
----
class NoThrowable {}
throw new NoThrowable(); // Noncompliant
----
== Compliant Solution
----
<?php
class SomeThrowable implements Throwable {
// Implementation of the Throwable methods
}
throw new SomeThrowable(); // Compliant
class SomeCustomException extends Exception {}
throw new SomeCustomException(); // Compliant{code}
----