1
00:00:00,210 --> 00:00:00,840
Bien, sigamos.

2
00:00:00,930 --> 00:00:03,570
Vamos a personalizar esta páginas de rol, por ejemplo.

3
00:00:03,610 --> 00:00:09,410
Bueno, acá está la 404, pero vamos a partir primero con 500 index.

4
00:00:09,510 --> 00:00:12,960
El error 500 de que no existe la plantilla bien en Spring Boot.

5
00:00:12,990 --> 00:00:19,080
Como ya hemos visto, todo tiene una configuración predefinida que prácticamente es automática, pero

6
00:00:19,080 --> 00:00:21,900
también maneja convención por sobre configuración.

7
00:00:21,990 --> 00:00:28,200
Es decir, podemos cumplir cierta estructura en nuestra aplicación, ya sea nombre de directorios,

8
00:00:28,260 --> 00:00:32,640
en fin, para poder implementar alguna funcionalidad, por ejemplo, el manejo error.

9
00:00:32,730 --> 00:00:33,810
Bueno, a qué me refiero?

10
00:00:33,900 --> 00:00:40,350
Si nos vamos a resource recursos y dentro de templates, bueno, en nuestras listas templates vamos

11
00:00:40,350 --> 00:00:41,430
a crear un directorio.

12
00:00:42,540 --> 00:00:46,680
Es muy importante que el directorio se llame error, el nombre error.

13
00:00:46,770 --> 00:00:52,110
Por lo tanto esta parametrizar no de esa forma es una convención y todo minuscula.

14
00:00:52,800 --> 00:01:00,480
Dentro de templates y dentro de error podemos crear una vista HTML para customizar nuestra página.

15
00:01:00,480 --> 00:01:09,030
Error rol por cada código, por cada código de rol, por ejemplo 404, 500, 401, 400, 400, 403.

16
00:01:09,090 --> 00:01:10,140
En fin, lo que sea.

17
00:01:10,260 --> 00:01:14,610
Vamos a ver entonces una plantilla, vamos a crear el HTML.

18
00:01:15,330 --> 00:01:16,290
Le vamos a llamar.

19
00:01:17,230 --> 00:01:17,980
500.

20
00:01:18,850 --> 00:01:20,380
Muy importante 500 puntos.

21
00:01:20,470 --> 00:01:27,280
tMl Bueno, y después, por supuesto, para personalizar el error 404 vamos a tener que crear el 404

22
00:01:27,340 --> 00:01:31,900
puntos HTML y así por cada código que queramos manejar de forma personalizada.

23
00:01:32,530 --> 00:01:33,310
Finalizar.

24
00:01:34,360 --> 00:01:42,250
Bueno, como toda plantilla de Taine Lif Tf8, este título lo quitamos o lo reemplazamos, en realidad,

25
00:01:45,910 --> 00:01:47,740
por ejemplo, ha ocurrido un error.

26
00:01:47,860 --> 00:01:56,500
Ups, perfecto, un título te voy a copiar y lo pegamos acá, pero por ejemplo, como un H3, un título

27
00:01:56,620 --> 00:02:04,240
o también un H1 da lo mismo y definir el n'est pas de life como siempre.

28
00:02:07,840 --> 00:02:08,980
Taime Lif funtor.

29
00:02:09,220 --> 00:02:10,090
Bueno, por qué?

30
00:02:10,180 --> 00:02:11,020
Por qué necesario?

31
00:02:11,350 --> 00:02:17,350
Bueno, acá pusimos a ocurrió un error, pero el error 500 no sé que puede ser cualquier cosa, cualquier

32
00:02:17,350 --> 00:02:18,310
tipo de excepción.

33
00:02:18,400 --> 00:02:24,510
Desde bases de datos, conexiones DataSource da taxes Nandez Format Deception que no existe la vista

34
00:02:24,520 --> 00:02:30,820
template acá incluso podemos ver en el terminal la excepción que se está lanzando un poco más arriba.

35
00:02:31,060 --> 00:02:37,480
Template input exception se fijan 12 cualquier error lanzamiento excepción dentro de la aplicación por

36
00:02:37,480 --> 00:02:42,280
defecto un error interno del sistema de la aplicación 500.

37
00:02:42,370 --> 00:02:45,340
Pero podríamos querer mostrar un poco más de detalle de lo que sucede.

38
00:02:45,460 --> 00:02:47,500
Quizás no tanto como esto.

39
00:02:47,620 --> 00:02:49,990
Resumir un poco y que sea más amistoso.

40
00:02:51,110 --> 00:02:55,310
Bueno, por defecto maneja objetos, atributo que están predefinido.

41
00:02:55,430 --> 00:02:59,310
Por ejemplo, el error que sería el nombre, el error que ocurre.

42
00:02:59,480 --> 00:03:02,340
El mensaje de un poco más detallado sobre el error.

43
00:03:02,450 --> 00:03:05,240
El status 500 404.

44
00:03:05,300 --> 00:03:05,690
En fin.

45
00:03:05,850 --> 00:03:06,530
Y la fecha.

46
00:03:06,620 --> 00:03:09,530
El teista y también la traza el 3.

47
00:03:10,010 --> 00:03:12,920
Entonces podremos tener contenedores div por cada uno.

48
00:03:13,040 --> 00:03:13,600
Y bueno.

49
00:03:13,610 --> 00:03:15,830
Como siempre con el th text.

50
00:03:17,420 --> 00:03:18,710
Mostrar estos valores.

51
00:03:19,340 --> 00:03:21,020
Entonces uno es el error.

52
00:03:24,070 --> 00:03:31,090
2 El mensaje Bueno, por supuesto, en inglés son objetos que vienen parametrizar 2 en la plantilla.

53
00:03:31,270 --> 00:03:33,100
Vamos a guardar y vamos a actualizar.

54
00:03:35,030 --> 00:03:36,350
Se fijan a ocurrir un error.

55
00:03:36,500 --> 00:03:43,010
Ahora está personalizado Internal Server error error 500 propio de nuestra aplicación del servidor,

56
00:03:43,460 --> 00:03:48,290
no se puede resolver la vista index no existe o podría no ser accesible.

57
00:03:48,380 --> 00:03:51,470
Se fijan entonces mucho más resumido, mucho más limpio.

58
00:03:51,560 --> 00:03:55,940
Incluso podrían quitar eso y colocar un mensaje en español más amigable.

59
00:03:56,180 --> 00:03:57,280
Entonces todo personalizado.

60
00:03:57,350 --> 00:04:01,310
Acá lo podemos personalizar también si queremos mostrar el status.

61
00:04:04,770 --> 00:04:05,580
El estatus.

62
00:04:11,040 --> 00:04:19,860
La fecha guardamos y probamos Bejan Error 500 y la fecha el teista, qué otro objeto?

63
00:04:20,220 --> 00:04:21,240
Bueno, por último.

64
00:04:23,650 --> 00:04:27,130
La traza, pero la traza entrega mucha información.

65
00:04:27,160 --> 00:04:28,960
Quizás para el usuario no es tan conveniente.

66
00:04:29,110 --> 00:04:33,120
Podría ser para ambientes, desarrollo, pero para el usuario final no es tan importante.

67
00:04:33,190 --> 00:04:34,750
Pero no importa, lo podemos agregar.

68
00:04:35,680 --> 00:04:36,310
Se fijan?

69
00:04:36,610 --> 00:04:37,380
Acá está el atraso.

70
00:04:37,630 --> 00:04:42,580
Incluso le podríamos dar un separador, una cherry para que quede mejor.

71
00:04:42,820 --> 00:04:43,630
Guardamos.

72
00:04:44,700 --> 00:04:49,860
Actualizamos que mejor se fijan con la traza, bueno, la traza por lo general nos incluye de que la

73
00:04:49,860 --> 00:04:53,790
idea de que la página de rock sea un poco más amistosa, pero bien, acá se puede personalizar.

74
00:04:53,970 --> 00:04:59,190
Ahora esto se aplica para cualquier tipo error, no solamente para el index de que existe la plantilla.

75
00:04:59,700 --> 00:05:09,180
Pongamos un ejemplo, vamos a controlador, algo simple, sencillo, integer valor, no sé, 100 dividido

76
00:05:09,180 --> 00:05:09,620
en cero.

77
00:05:11,130 --> 00:05:17,830
Bueno, acá marca un corny de este atributo o variable del método no se está utilizando, solamente

78
00:05:17,830 --> 00:05:22,970
le estamos definiendo para forzar el error para que suceda este error dividido por cero.

79
00:05:23,160 --> 00:05:30,720
Entonces para que no moleste lo vamos a anotar acá hacemos un clic y agregamos suprimir Warning sobre

80
00:05:30,720 --> 00:05:31,200
el método.

81
00:05:32,290 --> 00:05:36,400
Entonces, una anotación de Yaba que suprime el warning es opcional.

82
00:05:36,490 --> 00:05:40,300
No tiene ningún efecto funcional, solamente es para que no muestre warning.

83
00:05:40,330 --> 00:05:40,780
Nada más.

84
00:05:40,900 --> 00:05:41,530
Guardamos.

85
00:05:41,620 --> 00:05:45,550
Esperemos que se actualice y obviamente va a lanzar primero este error.

86
00:05:45,670 --> 00:05:48,400
Por lo tanto, este error no alcanza a suceder.

87
00:05:49,210 --> 00:05:53,560
Ejecutamos y cambia también 500, pero dividido por cero.

88
00:05:53,680 --> 00:05:55,420
Y acá lanza un error aritmético.

89
00:05:55,510 --> 00:05:57,310
Exception error aritmético.

90
00:05:57,840 --> 00:06:01,000
Entonces cualquier error 500 se va a mostrar en esta página.

91
00:06:01,150 --> 00:06:04,180
En esta página personalizada del error 500.

92
00:06:04,240 --> 00:06:08,730
Pero de forma genérica, de forma global también explicada, que se puede personalizar cada lanzamiento

93
00:06:08,740 --> 00:06:13,660
escepción implementando una clase controladora especializada en el manejo error.

94
00:06:13,720 --> 00:06:14,830
Pero después vamos a ver.

95
00:06:14,980 --> 00:06:20,440
Antes quería ver el tema del 404 cuando la página no existe.

96
00:06:20,530 --> 00:06:21,860
Cómo puedo personalizar ese error?

97
00:06:22,270 --> 00:06:23,440
Porque ese error no hay 500.

98
00:06:23,500 --> 00:06:29,350
Por ejemplo, si nos vamos a la raíz, lanza la página en blanco con el error 404.

99
00:06:29,770 --> 00:06:32,530
Entonces esta también es vemos personalizar, pero sería igual.

100
00:06:33,160 --> 00:06:34,000
Nos vamos a error.

101
00:06:34,660 --> 00:06:35,620
Bueno, muy parecido.

102
00:06:35,710 --> 00:06:36,520
Voy a copiar.

103
00:06:37,240 --> 00:06:37,990
Voy a pegar.

104
00:06:38,080 --> 00:06:44,910
Renombrado 404 se copia con control C y se pega con control B en error OK.

105
00:06:46,280 --> 00:06:48,710
Vamos a abrir Quattrocento y cambiamos el mensaje.

106
00:06:56,350 --> 00:06:57,850
Lo séptimo página no encontrada.

107
00:06:57,880 --> 00:06:58,810
404.

108
00:07:00,140 --> 00:07:01,920
Entonces, por ejemplo, ooops!

109
00:07:02,780 --> 00:07:06,740
Página no encontrada de las H3.

110
00:07:07,780 --> 00:07:09,160
Bueno, la traza nos aplica.

111
00:07:09,330 --> 00:07:11,140
Bueno, pero vamos a ver, vamos a guardar.

112
00:07:12,680 --> 00:07:14,180
Actualizamos, se fijan.

113
00:07:14,330 --> 00:07:17,150
Página no encontrada Not found el error.

114
00:07:17,300 --> 00:07:18,200
No hay mensaje.

115
00:07:18,470 --> 00:07:20,630
Por lo tanto, el mensaje no se aplica acá.

116
00:07:20,780 --> 00:07:27,150
Tampoco la traza, solamente el código 404, la fecha y la ruta.

117
00:07:27,410 --> 00:07:28,610
Entonces podemos quitar esto.

118
00:07:28,850 --> 00:07:33,140
Quitamos el mensaje en 404, no en 500 404.

119
00:07:33,800 --> 00:07:40,040
Dejamos solamente error status la fecha y cambiamos el 3 por el paso por la ruta porque está relacionado

120
00:07:40,040 --> 00:07:44,810
a la ruta y el path es otro objeto que podemos utilizar en el 404.

121
00:07:45,380 --> 00:07:46,100
Guardamos.

122
00:07:47,660 --> 00:07:50,300
Se fijan y acá aparece la ruta en la raíz.

123
00:07:50,570 --> 00:07:56,180
Pero si colocamos, por ejemplo, clientes, acá aparece la ruta de clientes.

124
00:07:57,380 --> 00:08:02,360
Y así podemos personalizar nuestros errores de una forma bien simple, pero bien a partir de la siguiente

125
00:08:02,360 --> 00:08:02,840
clase.

126
00:08:03,560 --> 00:08:11,600
Acá Índex vamos a personalizar exepciones de forma individual, por ejemplo aritméticos exception que

127
00:08:11,600 --> 00:08:13,790
tenga su propia página de error.

128
00:08:13,880 --> 00:08:20,360
Si queremos formatear o convertir un string a un integer y lanza un number forma section, también tenga

129
00:08:20,360 --> 00:08:21,140
su propio pginas.

130
00:08:21,140 --> 00:08:28,550
Error Mensaje relacionado con errores de persistencia data access exception de conexiones de consultas

131
00:08:28,670 --> 00:08:29,930
de sintaxis y se cuele.

132
00:08:29,960 --> 00:08:32,270
En fin, todo eso lo podemos también personalizar.

133
00:08:32,390 --> 00:08:38,180
Entonces la siguiente clase vamos a ver cómo personalizar aritméticos excepciones usando una clase especial.

134
00:08:38,210 --> 00:08:40,130
Para esto nos vemos en la siguiente clase.
