1
00:00:00,150 --> 00:00:01,300
Y qué pasa si ocurre un error?

2
00:00:01,350 --> 00:00:03,090
Por ejemplo, la tala no existe.

3
00:00:03,180 --> 00:00:04,710
Podrían colocar productos?

4
00:00:04,770 --> 00:00:05,130
No sé.

5
00:00:05,220 --> 00:00:07,860
2 va a caer en el Katt en este qure septón.

6
00:00:07,950 --> 00:00:10,890
Bueno, vamos a ver con al chef F10.

7
00:00:11,400 --> 00:00:12,150
Levantamos.

8
00:00:14,100 --> 00:00:14,300
Bien.

9
00:00:14,400 --> 00:00:16,110
Y acá tenemos el error perfecto.

10
00:00:16,740 --> 00:00:18,660
Nos dice la tabla producto.

11
00:00:18,680 --> 00:00:22,200
2 no existe y está bien, pero acá tenemos otro problema.

12
00:00:22,440 --> 00:00:24,720
Voy a cerrar la pestaña Cheff Esc.

13
00:00:25,080 --> 00:00:31,800
El problema es que se lanza la sección acá cuando se ejecuta el query ya y se sale del try y nos vamos

14
00:00:31,800 --> 00:00:32,190
al catch.

15
00:00:32,430 --> 00:00:34,450
A todo esto voy a colocar acá, eh?

16
00:00:34,830 --> 00:00:35,490
Y acá eh?

17
00:00:35,730 --> 00:00:36,630
Para que quede más simple.

18
00:00:37,020 --> 00:00:37,250
Bien.

19
00:00:37,380 --> 00:00:41,910
El problema es que no cierra la conexión y nos cierra el resultado ni nada de los recursos.

20
00:00:41,910 --> 00:00:44,130
Queda todo abierto y un problema.

21
00:00:44,250 --> 00:00:45,030
Es decir, que hay que ocurren.

22
00:00:45,030 --> 00:00:46,320
Error lanza la excepción.

23
00:00:46,410 --> 00:00:47,520
Nos vamos al catch 3.

24
00:00:47,520 --> 00:00:51,000
Todo acá que está dentro del try que los recurso completamente abierto.

25
00:00:51,160 --> 00:00:55,170
Entonces deberíamos utilizar un finali y esa es la idea de finalde.

26
00:00:55,320 --> 00:00:56,580
Entonces vamos a modificar.

27
00:00:56,670 --> 00:01:05,100
Vamos a colocar después del catch el finali y acá estos recursos de acá los vamos a seleccionar y los

28
00:01:05,100 --> 00:01:09,630
vamos a mover hacia abajo y lo dejamos dentro del frenarle.

29
00:01:09,750 --> 00:01:13,410
Ahora aclaro, hay un problema, hay un detalle que tenemos que solucionar.

30
00:01:13,920 --> 00:01:20,820
Por ejemplo, el resultado, la sentencia y la conexión se están definiendo acá dentro del try.

31
00:01:21,060 --> 00:01:23,000
Acá estamos definiendo las variables.

32
00:01:23,250 --> 00:01:26,040
Por lo tanto, solamente existen dentro del try y no fuera.

33
00:01:26,190 --> 00:01:27,990
El Faina íli es otro contexto.

34
00:01:28,260 --> 00:01:33,300
Entonces lo que podríamos hacer es mover esto acá y dejarlo o inicializar en NULL.

35
00:01:33,360 --> 00:01:35,160
Afuera vamos a ver como sería el cambio.

36
00:01:35,910 --> 00:01:40,950
Seleccionamos con el igual, lo vamos a copiar y lo dejamos acá fuera del traje.

37
00:01:42,570 --> 00:01:45,600
Lo pegamos Nule y lo mismo.

38
00:01:46,050 --> 00:01:48,240
Bueno, ya podemos quitar el connection.

39
00:01:48,420 --> 00:01:52,380
Esto acá simplemente lo vamos a quitar jamás.

40
00:01:52,380 --> 00:01:57,630
Así lo mismo lo seleccionamos, lo copiamos y lo dejamos arria.

41
00:02:03,980 --> 00:02:11,240
Y también el result set lo copiamos, lo pegamos y listo.

42
00:02:11,360 --> 00:02:11,990
Ahí lo tenemos.

43
00:02:12,230 --> 00:02:14,120
Bajamos y quitamos el tipo.

44
00:02:16,080 --> 00:02:21,440
Bien, pero también tenemos que manejar el trait catch dentro de finalde en el closet, porque también

45
00:02:21,440 --> 00:02:26,210
podría lanzar una solución un execute exception y se me complica un poco el código, sino que se complique,

46
00:02:26,210 --> 00:02:30,260
sino queda poco elegante, poco amistoso al desarrollador.

47
00:02:30,860 --> 00:02:37,250
Claro, estoy manejando el trade catch, pero en este contexto acá ahora lo tengo que manejar acá.

48
00:02:37,670 --> 00:02:44,990
Entonces bueno, para eso sobre el error una forma más acciones o bien otra alternativa con alt enter

49
00:02:45,920 --> 00:02:49,490
de que nos dice anidar contra el cacho nos da la solución.

50
00:02:49,610 --> 00:02:50,180
Perfecto.

51
00:02:50,240 --> 00:02:52,730
Pero en realidad son los tres bloques.

52
00:02:53,510 --> 00:03:03,410
Vamos a seleccionar todo acá y lo movemos dentro del traje perfecto y ordenamos que si se fijan.

53
00:03:03,500 --> 00:03:07,490
Entonces trae acá el catch, el finali y acá cerramos los recursos.

54
00:03:07,610 --> 00:03:12,500
En caso de error mucho código que un poco desordenado, mucho trae catch muchas animaciones.

55
00:03:12,710 --> 00:03:15,530
No es tan legible, tan elegante.

56
00:03:15,620 --> 00:03:18,620
Nuestro código podría quedar mucho mejor de otra forma.

57
00:03:18,740 --> 00:03:20,780
Bueno, de todas formas funciona y funciona bien.

58
00:03:21,020 --> 00:03:23,810
Vamos a levantar con cheff F10.

59
00:03:26,660 --> 00:03:30,140
Nada bueno me faltó acá cambiar acá productos.

60
00:03:30,530 --> 00:03:32,420
Ahora si volvemos a levantar.

61
00:03:34,130 --> 00:03:39,740
Bicicletas Sanson funciona hiciera la conexión después recuerda que finali siempre se ejecuta, siempre

62
00:03:39,830 --> 00:03:41,510
ocurre el error o no ocurre el error.

63
00:03:41,870 --> 00:03:45,140
Es decir, si todo sale bien en el track o si se lanza la sesión.

64
00:03:45,650 --> 00:03:52,190
Por lo tanto, si la tabla no existe o por ejemplo un poco más arriba, si el robot, el Yussef Naik

65
00:03:52,340 --> 00:03:55,310
o el password incorrecto o la base auto incorrecta.

66
00:03:55,970 --> 00:04:00,110
Por ejemplo, por acá vamos a cambiar el Yellowstone Ruta 2.

67
00:04:00,350 --> 00:04:01,430
Volvemos a levantar.

68
00:04:04,790 --> 00:04:09,010
Lánzale error vigen aceso negado para el RUT 2.

69
00:04:09,620 --> 00:04:14,830
El usuario visita bien y de hecho ocurre error acá en el Connection.

70
00:04:15,170 --> 00:04:17,780
De hecho, la sentencia nos alcanza a crear.

71
00:04:17,810 --> 00:04:18,830
Tampoco el resultado.

72
00:04:18,980 --> 00:04:19,980
Por lo tanto, son nulas.

73
00:04:20,540 --> 00:04:21,740
Llega, lanza otro error.

74
00:04:21,920 --> 00:04:25,670
No se puede invocar el ploff porque la sentencia es nula.

75
00:04:26,060 --> 00:04:29,210
Entonces, además tenemos que validar que sean distinto null por cada uno.

76
00:04:29,390 --> 00:04:30,180
Si es distinto, null.

77
00:04:30,200 --> 00:04:30,920
Punto Clouds.

78
00:04:31,100 --> 00:04:34,700
Se fijan entonces mucha animación y mucho if y mucha cosa.

79
00:04:34,860 --> 00:04:40,580
Entonces, una forma mucho mejor y más optimizada es lo siguiente el auto Closs que se cierre forma

80
00:04:40,580 --> 00:04:46,310
automática y eso lo maneja la máquina actual por debajo, utilizando el Troi con recursos.

81
00:04:46,430 --> 00:04:48,380
Entonces, bueno, vamos a modificar nuestro código.

82
00:04:48,500 --> 00:04:50,360
Vamos a cerrar la consola.

83
00:04:50,780 --> 00:04:55,070
Lo primero es quitar todo lo que diga Finalde y todo lo que diga Clouds.

84
00:04:55,250 --> 00:05:03,140
Entonces seleccionamos, lo quitamos y en el try por acá vamos a colocar los paréntesis y todo esto

85
00:05:03,140 --> 00:05:03,530
acá.

86
00:05:03,920 --> 00:05:06,590
Todo lo que sea conexiones lo vamos a mover.

87
00:05:06,650 --> 00:05:07,790
Entonces seleccionamos.

88
00:05:08,420 --> 00:05:09,260
Lo cortamos.

89
00:05:11,140 --> 00:05:15,910
Y lo dejamos acá hoy, que estamos dentro del triple con recurso.

90
00:05:16,000 --> 00:05:22,270
Tenemos que definir acá los con hecho en el Steinmetz, todo esto que tenemos acá de y lo vamos a quitar,

91
00:05:22,930 --> 00:05:24,820
lo quitamos y lo definimos acá.

92
00:05:25,180 --> 00:05:31,210
Entonces acá sería con hecho lo mismo la sentencia por acá.

93
00:05:37,580 --> 00:05:38,840
Y también el resulted?

94
00:05:39,080 --> 00:05:39,740
Ya lo tenemos.

95
00:05:39,860 --> 00:05:47,060
Lo que sí, el último punto y coma que tenemos acá en el result set lo podríamos omitir entonces dentro

96
00:05:47,210 --> 00:05:52,630
del recurso del tri, cuando estamos intentando abrir y ejecutar estos recursos con el conejo.

97
00:05:52,670 --> 00:05:57,740
Primero las sentencias se van separando con punto y coma, pero el último se puede omitir y se fijan

98
00:05:57,740 --> 00:06:01,520
que mucho mejor que mucho más legible nuestro código.

99
00:06:01,730 --> 00:06:06,230
De hecho, el con el Steinmetz y el resultado se cierran de forma automática.

100
00:06:06,470 --> 00:06:12,350
Después, cuando se ejecuta el 3, si sale todo bien y si sale mal en el catch también se va a cerrar.

101
00:06:12,560 --> 00:06:16,160
Es un auto Clough y de esta forma no evitamos tenerte anidar.

102
00:06:16,220 --> 00:06:22,010
Se fijan con tanto trait catch con if preguntarselo objeto distinto nulo para invocar el Clowes.

103
00:06:22,130 --> 00:06:24,440
El statement se distinto en null también.

104
00:06:24,530 --> 00:06:29,660
El resultado queda mucho más limpio y también son características que son relativamente nuevas de yaba.

105
00:06:30,140 --> 00:06:34,280
Que empezar a utilizar otro tema que quería hablar sobre Maven en un proyecto Maven.

106
00:06:34,370 --> 00:06:36,290
Acá aparece un menú lateral.

107
00:06:36,530 --> 00:06:40,370
Hacemos un clic en esta parte de acá al final a la derecha.

108
00:06:40,490 --> 00:06:42,590
Acá tenemos algunas configuraciones.

109
00:06:42,620 --> 00:06:49,310
Por ejemplo, acá podemos recargar Orri Lot todo nuestro proyecto Maven para descargar o volver a cargar

110
00:06:49,340 --> 00:06:51,690
la dependencia o dependencia que nos hayan descargado.

111
00:06:51,740 --> 00:06:57,290
Por ejemplo, el JS, aunque ya lo hicimos la clase anterior, se acuerdan que apareció el reloj de

112
00:06:57,290 --> 00:06:59,900
forma automática como por acá en verde?

113
00:07:00,170 --> 00:07:05,090
Bueno, también lo podemos hacer acá y también tenemos para generar el proyecto con el package para

114
00:07:05,090 --> 00:07:07,160
empaquetar y crear el JAR o el war.

115
00:07:07,760 --> 00:07:09,170
El link tal lo mismo.

116
00:07:09,410 --> 00:07:15,740
Bueno, después vamos a trabajar, pero para que tenga presente un JAR es un archivo comprimido de YABA

117
00:07:15,860 --> 00:07:21,200
que en el fondo lo que hace empaquetar nuestra aplicación con el código compilado, no el código fuente,

118
00:07:21,380 --> 00:07:26,900
el compilado para producción para ejecutar, ya sea en un servidor o en la máquina apolillada, en un

119
00:07:26,900 --> 00:07:28,790
Tomcat que nos servirá de aplicación.

120
00:07:28,850 --> 00:07:35,150
En fin, también tenemos el de play para desplegar en un servidor el instal y el РАМКАХ muy parecido,

121
00:07:35,180 --> 00:07:41,630
porque ambos generan los archivos JAR y el war, pero la referencia que limita lo instala y lo copia

122
00:07:41,720 --> 00:07:43,430
en el repositorio local de Maven.

123
00:07:43,550 --> 00:07:50,450
De esa forma puedo como reutilizar y agregar nuestro jar o librerías en otro proyecto como una dependencia.

124
00:07:50,540 --> 00:07:51,530
Para que tengan una idea.

125
00:07:51,620 --> 00:07:57,350
El JAR es una aplicación típicamente librerías, aunque también si trabajamos con Spring Boot, un jar

126
00:07:57,350 --> 00:08:03,470
se puede ejecutar porque trae su propio servidor embebido dentro de este archivo comprimido JAR y el

127
00:08:03,470 --> 00:08:10,040
juar les pareció el jar, pero se refiere a un archivo web para desplegar típicamente en un servidor

128
00:08:10,070 --> 00:08:11,660
como Tomcat o de aplicaciones.

129
00:08:11,840 --> 00:08:12,320
Eso es todo.

130
00:08:13,490 --> 00:08:19,190
Voy a cerrar la pestaña si quiero mostrar más campos, por ejemplo acá tenemos el nombre, pero quiero

131
00:08:19,190 --> 00:08:26,920
mostrar el Heidy, el precio, la fecha, resultado punto guet.

132
00:08:27,200 --> 00:08:29,660
En este caso el Heidy es del tipo entero.

133
00:08:29,750 --> 00:08:36,230
Entonces el tipo int yo acabo de colocar por ejemplo 1 el índice de la columna o bien el nombre tal

134
00:08:36,230 --> 00:08:38,300
como vimos con el Heidy.

135
00:08:43,440 --> 00:08:45,950
Guet, el precio del tipo entero.

136
00:08:48,720 --> 00:08:49,140
Precio

137
00:08:54,270 --> 00:09:01,710
la fecha del tipo dato, fecha, registro, pero vamos a ver un problema.

138
00:09:01,770 --> 00:09:05,010
La idea que muestre en una sola línea en la consola.

139
00:09:05,430 --> 00:09:07,590
Entonces, lo que podríamos hacer por acá?

140
00:09:07,710 --> 00:09:08,930
Quitar el line.

141
00:09:09,330 --> 00:09:10,950
Se fijan por acá tenemos el prime.

142
00:09:11,040 --> 00:09:16,860
Simplemente lo quitamos, bajamos, quitamos, quitamos y el último va con el salto línea.

143
00:09:17,010 --> 00:09:21,600
Ahí sí, también podemos colocar un espacio, porque si no va a estar todo, todo junto.

144
00:09:22,350 --> 00:09:27,990
Entonces, por ejemplo, por acá un espacio y un espacio.

145
00:09:28,080 --> 00:09:35,220
Y entremedio vamos a colocar una línea vertical y también lo vamos a copiar, lo seleccionamos, lo

146
00:09:35,220 --> 00:09:39,570
copiamos y lo pegamos por acá y también por acá.

147
00:09:40,500 --> 00:09:43,580
Acá el ruto no es root 2, sino roto.

148
00:09:44,400 --> 00:09:46,350
Ahora, si levantamos de nuevo.

149
00:09:48,340 --> 00:09:53,020
Ya lo tenemos, pero un pequeño detalle me faltó, claro, acá puse el prime.

150
00:09:53,770 --> 00:09:54,730
No se lo quitamos.

151
00:10:00,770 --> 00:10:05,470
Jassi 1/2 bicicleta con el precio y con la fecha de Kahuna con el detalle.

152
00:10:05,690 --> 00:10:09,420
Bien, por ahora lo dejamos hasta acá y continuamos en la siguiente clase.
