2012-03-24 11 views
5

Durante lo studio per l'esame Zend PHP ho trovato le seguenti informazioni contraddittorie:Tutte le eccezioni non rilevate sono fatali in PHP?

Dalla guida allo studio Zend PHP 5.3 v1a - PDF disponibile here.

enter image description here

La risposta:

enter image description here

e informazioni provenienti dalle dell'architetto PHP Zend PHP 5 Certification Study Guide da Davey Shafik ISBN: 0-9738621-4-9 Pagina 128 enter image description here

Qualcuno può dirmi qual è il vero?

Grazie

risposta

5

Dal php manual, si prega di notare il unless.

Se un'eccezione non viene catturato, un errore fatale di PHP saranno emesse con una "eccezione Uncaught ..." il messaggio, a meno che un gestore è stato definito con set_exception_handler().

+0

Quindi, direi che sono entrambi corretti. Se non lo si * cattura * (con l'istruzione catch), e non lo si * gestisce * (con 'set_exception_handler()') diventa fatale. –

+0

Non sono d'accordo. L'esecuzione si arresterà SEMPRE anche se si utilizza il gestore di eccezioni. Non mostrerà solo un messaggio di errore, ma questo è un errore fatale. Quindi a mio parere la domanda è male formulata. – Andy

2

Le eccezioni non rilevate causano quasi sempre un errore irreversibile, a meno che non venga utilizzato set_exception_handler(). Questo è quello che non è sempre ma Quasi Sempre.

Dal manuale PHP:

Se un'eccezione non viene catturato, un errore fatale di PHP verrà rilasciato con una "eccezione Uncaught ..." il messaggio, a meno che un gestore è stato definito con set_exception_handler() .

Problemi correlati