Nuevo en Symfony 4.1: mejoras relacionadas con los errores

FlattenException ya no enmascara los errores

Symfony decora los errores de la aplicación con la clase FatalThrowableError. Esto hace que el auténtico error no se muestre en las páginas de excepción, como en el siguiente ejemplo, donde se ve un error de tipo FatalThrowableError en vez del verdadero error de tipo DivisionByZeroError.

En Symfony 4.1, la clase FlattenException obtiene el verdadero error a partir del objeto FatalThrowableError, por lo que siempre verás el auténtico error que se ha producido:

Esta funcionalidad fue contribuida por Alexander M. Turek en el pull request #26028.

Nuevas clases para excepciones

En Symfony 4.1 hemos añadido la clase ProcessSignaledException en el componente Process para poder procesar de manera precisa los procesos con señales. Además, en el componente HttpFoundation hemos añadido nuevas clases para procesar con más detalle las excepciones relacionadas con la subida de archivos (antes olo había una clase FileException para todos los errores):

use Symfony\Component\HttpFoundation\File\Exception\CannotWriteFileException;
use Symfony\Component\HttpFoundation\File\Exception\ExtensionFileException;
use Symfony\Component\HttpFoundation\File\Exception\FormSizeFileException;
use Symfony\Component\HttpFoundation\File\Exception\IniSizeFileException;
use Symfony\Component\HttpFoundation\File\Exception\NoFileException;
use Symfony\Component\HttpFoundation\File\Exception\NoTmpDirFileException;
use Symfony\Component\HttpFoundation\File\Exception\PartialFileException;

Además, como a partir de PHP 7.1 ya puedes procesar varias excepciones a la vez, tu código puede hacer cosas como estas:

try {
    // ...
} catch (FormSizeFileException | IniSizeFileException $e) {
    // ...
}

Esta funcionalidad fue contribuida por Sullivan SENECHAL y Florent Mata en los pull requests #25775 y #26475.

Mejorado el diseño de las páginas de excepción

Las páginas de excepción se han mejorado en Symfony 4.1 para mostrar menos información. En concreto, el código que se encuentra en la carpeta vendor/ ahora se muestra mucho más compacto (en una sola línea) y no se muestran sus argumentos:

Esta funcionalidad fue contribuida por Javier Eguiluz en el pull request #26671.

Fuente: New in Symfony 4.1: Exception improvements

Comentarios

Publicada el

31 de mayo de 2018

Etiquetas

Proyectos Symfony destacados

La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.