rspec/rules/S5632/php/rule.adoc

39 lines
939 B
Plaintext
Raw Normal View History

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
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
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}
----
ifdef::rspecator-view[]
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::rspecator-view[]