2012-03-24 14 views
5

Mientras estudiaba para el examen PHP de Zend encontré la siguiente información contradictoria:¿Son todas las excepciones no detectadas fatales en PHP?

De la guía de estudio de Zend PHP 5.3 v1a - PDF disponible here.

enter image description here

La respuesta:

enter image description here

e información de Zend PHP 5 Certificación del php del arquitecto Guía de estudio de Davey Shafik ISBN: 0-9738621-4-9 Página 128 enter image description here

¿Puede alguien decirme cuál es verdad?

Gracias

Respuesta

5

Desde el php manual, tenga en cuenta la unless.

Si una excepción no se detecta un error fatal de PHP se emitirán con una "excepción no capturada ..." mensaje, a menos que un controlador se ha definido con set_exception_handler().

+0

Entonces, yo diría que ambos son correctos. Si no * lo * captura (con instrucción catch), y no * maneja * it (con 'set_exception_handler()') entonces se vuelve fatal. –

+0

No estoy de acuerdo. La ejecución SIEMPRE se detendrá incluso si usa el manejador de excepciones. No solo mostrará un mensaje de error, pero este es un error fatal. Entonces, en mi opinión, la pregunta está mal formulada. – Andy

2

Las excepciones no detectadas casi siempre causan un error fatal, a menos que se use set_exception_handler(). Eso es lo que no es siempre pero Casi Siempre.

Desde el manual de PHP:

Si una excepción no se detecta un error fatal de PHP se emitirá con una "excepción no capturada ..." mensaje, a menos que un controlador se ha definido con set_exception_handler() .

Cuestiones relacionadas