Класс OutOfRangeException

(PHP 5 >= 5.1.0, PHP 7)


Создается исключение при запросе несуществующего индекса. Такие ошибки будут обнаружены во время компиляции.

Обзор классов

OutOfRangeException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )


Exemple :

$calendar = new Calendar();
2017-01-26 14:47:40
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.");
2017-05-17 02:59:23
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?
2020-05-26 20:54:02

    Поддержать сайт на родительском проекте КГБ