PHP.mk документација

Грешки во PHP 7

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

language.errors.php7.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека language.errors.php7.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
Грешки во PHP 7

Референца за `language.errors.php7.php` со подобрена типографија и навигација.

language.errors.php7.php

Грешки во PHP 7

PHP 7 го менува начинот на кој повеќето грешки се пријавуваат од страна на PHP. Наместо да се пријавуваат грешки преку традиционалниот механизам за пријавување грешки што се користи од PHP 5, повеќето грешки сега се пријавуваат со фрлање Грешка exceptions.

Како и со нормални исклучоци, овие Грешка исклучоци ќе се искачуваат додека не стигнат до првиот соодветен catch блок. Ако нема соодветни блокови, тогаш секој стандарден ракувач со исклучоци инсталиран со set_exception_handler() ќе биде повикан, и ако нема стандарден ракувач со исклучоци, тогаш исклучокот ќе биде претворен во фатална грешка и ќе се третира како традиционална грешка.

Како што Грешка хиерархијата не наследува од Исклучок, кодот што користи catch (Exception $e) { ... } блокови за ракување со нефатени исклучоци во PHP 5 ќе открие дека овие Грешкане се фатени од овие блокови. Или catch (Error $e) { ... } блок или set_exception_handler() ракувач е потребен.

Белешки од корисници 5 белешки

гладен точка рахли на ѓимејл точка ком
пред 10 години
You can catch both exceptions and errors by catching(Throwable)
демис точка палма на тискали точка ит
пред 9 години
Throwable does not work on PHP 5.x.

To catch both exceptions and errors in PHP 5.x and 7, add a catch block for Exception AFTER catching Throwable first.
Once PHP 5.x support is no longer needed, the block catching Exception can be removed.

try
{
   // Code that may throw an Exception or Error.
}
catch (Throwable $t)
{
   // Executed only in PHP 7, will not match in PHP 5
}
catch (Exception $e)
{
   // Executed only in PHP 5, will not be reached in PHP 7
}
диогoца на ѓимејл точка ком
пред 6 години
<?php

set_error_handler(function(int $number, string $message) {
   echo "Handler captured error $number: '$message'" . PHP_EOL  ;
});

try {
    echo $x; # notice, handled on callable
    pg_exec(null, null); # warning, handled on callable
    fho(); # fatal error, stop running and catched
} catch (Throwable $e) {
    echo "Captured Throwable: " . $e->getMessage() . PHP_EOL;
}

?>

set_error_handler will also works without try and catch
рајан точка јенцш@{ѓимејл} точка ком
пред 8 години
An excellent blog post on the difference between exceptions, throwables and how PHP 7 handles these can be found here: https://trowski.com/2015/06/24/throwable-exceptions-and-errors-in-php7/
лубаев точка ка на ѓимејл точка ком
пред 9 години
php 7.1

try {
   // Code that may throw an Exception or ArithmeticError.
} catch (ArithmeticError | Exception $e) {
   // pass
}
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.