Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    problema con gestione errori

    Ciao.
    Ho provato questo codice preso da un manuale, come semplice esempio di gestione errori:

    function handler($error_type, $error_message, $error_file, $error_line) {

    switch($error_type) {
    case E_ERROR:

    echo "<h1>Errore fatale</h1>";
    die ("ATTENZIONE!: un errore fatale si e' verificato alla riga $error_line del file $error_file
    Il messaggio di errore è il seguente: &quot;$error_message&quot;");
    break;

    case E_WARNING:

    echo "<h1>ATTENZIONE!</h1>";
    die ("Errore di tipo WARNING alla riga $error_line del file $error_file

    Il messaggio di errore e' il seguente: &quot;$error_message&quot;");
    break;

    case E_NOTICE:

    // niente da dire
    break;

    }
    }

    set_error_handler("handler");

    //segue altro codice...


    Il problema è che se genero un errore di tipo warning funziona, ma se genero un fatal error (es. richiamo una funzione che non esiste) l'avviso viene visualizzato ignorando la funzione handler...
    Sapete dirmi perché? Dipende dal php.ini o da Apache?

    Grazie.

  2. #2
    quei tipi di errori sono gestiti dal php... come se fossero errori di parsing.. normale

    come fai a prevedere del codice in cui ci possono essere chiamate a funzioni non settate? è come scrivere il codice senza ; finale....


    se proprio hai necessità di chiamare funzioni non settate.. falle chiamare attraverso una funzione che prima verifica la loro esistenza:

    http://it2.php.net/manual/it/functio...ion-exists.php

  3. #3
    Grazie per la risposta.
    In realtà non ho necessità di richiamare funzioni non settate; quello che ho proposto è solo un esempio teorico a fini di studio. Non capisco perché se l'errore è di tipo warning l'avviso di errore venga formattato in base alle mie istruzioni (case E_WARNING), se invece l'errore è fatale è come se il case E_ERROR non esitesse. Ho provato anche a sostituire E_ERROR con E_PARSE, con E_ALL ecc... ma il risultato è lo stesso.
    Più che alto è una curiosità, alla fine userò codici più complessi per la gestione degli errori.

    Grazie comunque,

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.