The OutOfRangeException class

(PHP 5 >= 5.1.0, PHP 7)


Exception thrown when an illegal index was requested. This represents errors that should be detected at compile time.

Sınıf Sözdizimi

OutOfRangeException extends LogicException {
/* Miras alınan özellikler */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Miras alınan yöntemler */
public Exception::__construct (string $ileti = "" , int $kod = 0 , Throwable $önceki = null )
final public Exception::getMessage ( ): string
final public Exception::getCode ( ): mixed
final public Exception::getFile ( ): string
final public Exception::getLine ( ): int
final public Exception::getTrace ( ): array
final public Exception::getTraceAsString ( ): string
public Exception::__toString ( ): string
final private Exception::__clone ( ): void
add a note add a note

User Contributed Notes 3 notes

7 months ago
I tried to write a snippet that would be detected at compile time, but was unable, apparently due to my PHP engine's interpreted nature. The creator(s) should have provided a usage example (for end-users) or pointed to PHP sources for an example of where/how it's used. None of the provided examples, to date, reflect an exception detected at compile time, as this class asserts.

IMO it's hopeful at best to expect a compiler to detect an illegal index in a dynamically-typed, typically JIT-executed, enviro. Since when is there a strict contract of what indexes should be considered "within range" and how would the compiler know about this contract? Also, how would we try/catch that in the compile phase?

SPL also provides the OutOfBounds exception. If this class, its parent, and OOB have little distinction, then does SPL need all 3?
3 years ago
I see this in this way:
By definiton, OutOfRangeException should be use to when potential problem is logical - occurs because of wrong code or definition. OutOfBoundsException is for runtime.

Example (see also note in "OutOfBoundsException class" article):
function prepareData(PDOStatement $s) {
$x = $s->fetch();
    if (!isset(
        throw new
OutOfRangeException ("Secret column doesn't exist! Verify table definition and query.");
evguenia dot chagnon at gmail dot com
3 years ago
Exemple :

$calendar = new Calendar();
To Top