La clase OutOfRangeException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introducción

Lanza una excepción cuando se solicita un índice ilegal. Esto representa un error que debe ser detectado en tiempo de compilación.

Sinopsis de la Clase

OutOfRangeException extends LogicException {
/* Propiedades heredadas */
protected string $message;
protected int $code;
protected string $file;
protected int $line;
/* Métodos heredados */
public Exception::__construct(string $message = "", int $code = 0, Throwable $previous = 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

up
1
Free
3 years 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?
up
0
Jakub
6 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):
<?php
function prepareData(PDOStatement $s) {
   
$x = $s->fetch();
    if (!isset(
$x['secretColumn']))
        throw new
OutOfRangeException ("Secret column doesn't exist! Verify table definition and query.");
}
up
0
evguenia dot chagnon at gmail dot com
7 years ago
Exemple :

$calendar = new Calendar();
$calendar->getMonth(15);
To Top