30 lines
799 B
Plaintext
30 lines
799 B
Plaintext
![]() |
Instances of classes that do not derive from the "Throwable" interface cannot be used in a PHP "throw" statement.
|
||
|
|
||
|
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.
|
||
|
|
||
|
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}
|
||
|
----
|