ErrorException

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

ErrorException

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

Introduktion

Ett Error Exception.

Klassöversikt

class ErrorException extends Exception {
/* Egenskaper */
protected int $severity = E_ERROR;
/* Ärvt från Exception */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;

/* Metoder */
public __construct(
    string $message = "",
    int $code = 0,
    int $severity = E_ERROR,
    ?string $filename = null,
    ?int $line = null,
    ?Throwable $previous = null
)
final public getSeverity(): int
/* Ärvt från Exception */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Egenskaper

  • severity:
 Allvarlighetsgraden av undantaget

Exempel

Exempel #1 Använd set_error_handler() för att omvandla felmeddelanden till ErrorException.
<?php
set_error_handler(function (int $errno, string $errstr, string $errfile, int $errline) {
    if (!(error_reporting() & $errno)) {
        // Denna felkod ingår inte i error_reporting.
        return;
    }
    if ($errno === E_DEPRECATED || $errno === E_USER_DEPRECATED) {
        // Kasta inte ett undantag för avskrivningsvarningar då nya eller oväntade
        // avskrivningar skulle kunna bryta applikationen.
        return;
    }
    throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
});

// Att unserialisera trasiga data utlöser en varning som kommer att omvandlas till en
// ErrorException av felhanteraren.
unserialize('trasiga data');
?>

Ovanstående exempel kommer att ge något liknande:

Fatal error: Uncaught ErrorException: unserialize(): Error at offset 0 of 11 bytes in test.php:16
Stack trace:
#0 [internal function]: {closure}(2, 'unserialize(): ...', 'test.php', 16)
#1 test.php(16): unserialize('trasiga data')
#2 {main}
  thrown in test.php on line 16

Innehållsförteckning

Sidslut

Orginalhemsidan på Engelska : https://www.php.net/manual/en/class.exception.php
PHP
Språkreferens
Språkreferens#Fördefinierade_Variabler
Fördefinierade Undantag


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.