Personalización de las páginas de error
Presentación
Cada error detectado por Symfony genera lo que se llama una Exception. La excepción es detectada y una página de error muestra el mensaje de error generado.
Así, si intenta ejecutar una ruta que no existe, como, por ejemplo, la ruta /unknwon, Symfony mostrará esta página de error:
![images/RI18_01.png](https://www.eni-training.com/download/3344c6bd-83e8-47fb-bff9-51328b4bd484/images/RI18_01.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Esta página indica que se ha generado una excepción, pero el diseño no es muy bonito. Sería bastante molesto que apareciese un error así en modo de producción. Esto se parece más a un error de software no controlado. Además, las páginas de error deberían mantener el diseño de todo su sitio web, para evitar que el usuario se sienta desorientado.
Para resolver este problema, vamos a redefinir el aspecto de las páginas de error. Crearemos un nuevo controlador, que llamaremos ErrorController. En el terminal, escriba el siguiente comando:
php bin/console make:controller ErrorController
Edite el controlador yendo a la página src/Controller/ErrorController.
Vamos a crear un método llamado show() que se llamará cada vez que se dispare una excepción. En el controlador:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\ErrorHandler\Exception\FlattenException; ...