English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Manuale di riferimento per Errori e Loggings PHP
La funzione set_error_handler() imposta il gestore degli errori personalizzato
mixed set_error_handler (callback $error_handler[, int $error_types]);
Imposta la funzione utente (error_handler) per gestire gli errori che si verificano nello script.
Questa funzione può essere utilizzata per gestire gli errori in esecuzione in modo personalizzato, ad esempio, quando si verifica un errore grave nell'applicazione o quando si verifica un errore in condizioni specifiche (utilizzando trigger_error()), è necessario pulire e recuperare i dati/file.
È importante ricordare che i tipi di errore specificati in error_types bypassano il gestore degli errori standard PHP, a meno che la funzione di callback restituisca FALSE. L'impostazione di error_reporting() non avrà alcun effetto e la tua funzione di gestione degli errori continuerà ad essere chiamata - tuttavia, puoi ancora ottenere il valore corrente di error_reporting e trattare di conseguenza. È importante notare che, quando si verifica un errore in una语句 che inizia con l'operatore di controllo @, questo valore sarà 0.
Inoltre, è importante ricordare che, se necessario, hai l'obbligo di utilizzare die(). Se il gestore degli errori restituisce, lo script continuerà a eseguire la riga successiva dopo l'errore.
Gli errori di seguito non possono essere gestiti da funzioni definite dall'utente: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING e la maggior parte di E_STRICT generati nel file in cui è stato chiamato set_error_handler().
Se l'errore si verifica prima dell'esecuzione dello script (ad esempio durante l'upload di file), il gestore degli errori personalizzato non verrà chiamato perché non è stato registrato in quel momento.
Numero di sequenza | Parametri e descrizione |
---|---|
1 | error_handler (obbligatorio) Specifica la funzione da eseguire durante l'errore. Di seguito è riportata la sintassi di error_handler. |
2 | error_types (opzionale) Specifica a quale livello di report degli errori deve essere visualizzato l'errore definito dall'utente. Il valore predefinito è “E_ALL”. Per i livelli di report degli errori possibili, vedere “Costanti di errore e di registro PHP:”. |
error_function(error_level, error_message, error_file, error_line, error_context);
Questa è la descrizione di paramenter
errno - Il primo parametro errno, contiene il livello dell'errore, è un intero.
errstr - Il secondo parametro errstr, contiene le informazioni dell'errore, è una stringa.
errfile - Il terzo parametro opzionale, errfile, contiene il nome del file in cui è avvenuto l'errore, è una stringa.
errline - Il quarto parametro opzionale, errline, contiene il numero di riga in cui è avvenuto l'errore, è un intero.
errcontext - Il quinto parametro opzionale, errcontext, è un array che punta alla tabella dei simboli attiva al momento dell'errore. Questo significa che errcontext contiene un array di tutte le variabili all'interno dello scope in cui è stato attivato l'errore. Il gestore degli errori dell'utente non dovrebbe modificare l'errore di contesto.
Se è stato definito precedentemente un gestore degli errori, viene restituito una stringa con il nome del programma; se è un gestore degli errori integrato, viene restituito NULL. Se viene specificato un callback funzione non valido, viene restituito anche NULL. Se il gestore degli errori precedente è un metodo di una classe, questa funzione restituisce un array indicizzato (indexed array) con il nome della classe e del metodo.
Di seguito è riportato l'uso di questa funzione set_error_handler:
<?php function customError($errno, $errstr, $errfile, $errline) { echo "Errore personalizzato: [$errno] $errstr\n"; echo "Errore alla riga $errline nel file $errfile\n"; echo "Fine della Script"; die(); } //Impostazione del gestore degli errori set_error_handler("customError"); $test = 0; //Attivazione dell'errore if ($test > -1) { trigger_error("Errore personalizzato attivato"); } ?>Prova a vedere </>
Risultato dell'output:
Errore personalizzato: [1024] È stato attivato un errore personalizzato. Errore alla riga 16 in /home/cg/root/1531703/main.php Fine della Script