Controllo di errori

Gli argomenti di questa pagina

  • Nascondere gli errori con l'operatore di controllo errori @

Nascondere gli errori con l'operatore di controllo errori @

Alle volte quando una istruzione PHP genera un errore, questo errore il PHP reagisce stampando a video la natura dell'errore ed altre informazioni utili a rintracciare e risolvere l'errore stesso.

  • il tipo di errore: PARSE ERROR, FATAL ERROR, WARNING, NOTICE, DEPRECATED o STRICT; ognuno di questi errori è contraddistinto da una costante con valore numerico.
  • il motivo: cioè una stringa che descrive sinteticamente i motivi per il quale si è verificato l'errore;
  • il file in cui è presente l'errore;
  • la riga del file in cui è presente l'errore.

 

Questa situazione tuttavia risulta poco sicura oltre che poco elegante.
Una soluzione è quella di usare un operatore di controllo dell'errore '@' che PHP ci mette a disposizione. Quando questo viene prefisso ad una istruzione PHP che potrebbe sollevare un qualche errore o Warning, verrà ignorato qualsiasi messaggio di errore che possa essere generato.
Nell'esempio qui sotto vengono eseguiti due test su date con una sintassi palesemente errata.
Se nel test non è presente l'operatore di controllo errori '@' e la data non è corretta, chiaramente, viene mostrato l'errore sollevato dalla istruzione. Questo sarebbe l'errore causato in caso di data non valida:
Warning: checkdate() expects parameter 3 to be long, string given in percorso\nome_file on line xxx
Nel test mostrato qui di seguito e malgrado l'istruzione sollevi l'errore, questo non viene mostrato perchè presente l'operatore '@'.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (@checkdate(4,12)) {
    echo 
"Data Giusta<br />";
} else {
    echo 
"Data Sbagliata<br />";
}
if (@
checkdate(20,12,2004)) {
    echo 
"Data Giusta<br />";
} else {
    echo 
"Data Sbagliata<br />";
}
if (@
checkdate(12,20,2004)) {
    echo 
"Data Giusta<br />";
} else {
    echo 
"Data Sbagliata<br />";
}
?>
Data Sbagliata
Data Sbagliata
Data Giusta

 

 



settore tecnico il sito di lorettabweb il Forum di sostegno
il forum il forum il forum