NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

PHP - set_exception_handler

Třída

Kořen \ Bez třídy

Metoda - set_exception_handler

(PHP 5, PHP 7)

Funkce slouží k definování uživatelského exception handleru, jinými slovy funkce umožňuje odchytávání výjimek na té nejvyšší úrovni, kde by jinak způsobily pád skriptu. Slouží k zachycení všech výjimek, které nejsou zachyceny pomocí try-catch bloku. Běh skriptu bude zastaven po zavolání definované funkce!

Poznámka: Exception handler slouží pouze pro zachytávání výjimek, nikoliv chyb. Pro zachytávání chyb použijte funkci set_error_handler()!

Procedurální

Parametry

NázevDatový typVýchozí hodnotaPopis
$exception_handlercallable

Název funkce sloužící pro zachytávání výjimek.

Návratové hodnoty

Vrací: callable

Vrací název předchozího exception handleru, nebo null v případě chyby nebo pokud se jedná o první exception handler.

Příklady

Bez try-catch:

<?php

function mujHandler($vyjimka)
{
    echo '-----------' . "\n";
    echo 'Máme tu výjimku!' . "\n";
    echo 'Zpráva zní: ' . $vyjimka->getMessage() . "\n";
    echo 'V souboru ' . $vyjimka->getFile() . ':' . $vyjimka->getLine() . "\n";
    echo '-----------' . "\n";
}

set_exception_handler('mujHandler');

echo 'Ahoj světe!' . "\n";
throw new Exception('Testovací výjimka');
echo 'Sbohem světe!';

To stejné s try-catch:

<?php

function mujHandler($vyjimka)
{
    echo '-----------' . "\n";
    echo 'Máme tu výjimku!' . "\n";
    echo 'Zpráva zní: ' . $vyjimka->getMessage() . "\n";
    echo 'V souboru ' . $vyjimka->getFile() . ':' . $vyjimka->getLine() . "\n";
    echo '-----------' . "\n";
}

set_exception_handler('mujHandler');

echo 'Ahoj světe!' . "\n";
try {
    throw new Exception('Testovací výjimka');
}
catch (Exception $ex)
{
    echo 'Výjimka! Ale jsme v try-catch, skript pojede dál.' . "\n";
}
echo 'Sbohem světe!';

Související manuály

        Aktivity