1
00:00:00,210 --> 00:00:00,780
Bienvenidos.

2
00:00:00,810 --> 00:00:06,570
Vamos a ver otro ejemplo de manejo exepciones, pero utilizando el proyecto que ya tenemos de repositorio.

3
00:00:06,840 --> 00:00:10,680
Entonces bueno, vamos a cerrar este de acá y vamos a abrir el otro.

4
00:00:11,040 --> 00:00:16,110
serГa proyecto perfecto y nos vamos a interfases repositorio.

5
00:00:16,770 --> 00:00:18,090
Hacemos un clic y lo abrimos.

6
00:00:18,180 --> 00:00:19,260
Bien, hay alternativa.

7
00:00:19,350 --> 00:00:24,900
Lo pueden copiar, lo pueden respaldar y mantenemos el anterior tal como lo teníamos con una copia y

8
00:00:24,900 --> 00:00:26,490
modificamos este como quiera.

9
00:00:27,090 --> 00:00:29,280
Pero también es bueno que tengan una copia.

10
00:00:29,370 --> 00:00:34,560
Entonces la idea es crear un par de clases decepciones, una genericas, otras concretas para el manejo

11
00:00:34,560 --> 00:00:38,460
de error, tanto para leer, consulta, lectura y escritura.

12
00:00:38,520 --> 00:00:43,050
Cuando queremos, por ejemplo, agregar un cliente o un nuevo producto, como por ejemplo qué pasa si

13
00:00:43,050 --> 00:00:47,550
queremos agregar un producto con Heidy que ya existen las Ayato ya está registrado.

14
00:00:47,640 --> 00:00:49,680
Bueno, en este caso en el ArrayList.

15
00:00:49,920 --> 00:00:50,970
Pero qué pasa si existe?

16
00:00:51,090 --> 00:00:53,430
O qué pasa si agrego un objeto nulo?

17
00:00:53,490 --> 00:00:57,960
También lo puedo manejar o si quieren consultar por un Heidy, pero el producto no existe.

18
00:00:57,990 --> 00:00:59,040
Puedo hacer una excepción.

19
00:00:59,100 --> 00:01:05,670
Se fijan el producto no existe o el Heidy en menor o igual a cero también son cosas que podemos manejar

20
00:01:05,850 --> 00:01:06,750
usando cepciones.

21
00:01:07,140 --> 00:01:17,280
Entonces un repositorio acá vamos a tener un package solamente para organizar acá exepciones y vamos

22
00:01:17,280 --> 00:01:18,300
a tener un par.

23
00:01:18,840 --> 00:01:23,760
Bueno, primero una genérica que básicamente la vamos a ocupar, la vamos a utilizar en la interfaz

24
00:01:23,820 --> 00:01:26,220
y después en cada implementación de esa interfaz.

25
00:01:26,250 --> 00:01:33,690
Por ejemplo en el por Heidy o en el crear o editar se fijan la podemos utilizar en la firma el método,

26
00:01:33,750 --> 00:01:39,990
pero ya sea la genérica es la excepción genérica padre o la clases decepciones más concreta.

27
00:01:40,180 --> 00:01:46,860
Bien, entonces vamos a crear una clase primero la genérica le podríamos llamar acceso dato exception.

28
00:01:50,640 --> 00:01:57,600
Bien, entonces por acá stents excepto bien, como siempre el constructor.

29
00:01:59,750 --> 00:02:02,210
No vamos a Generad Constructor.

30
00:02:03,120 --> 00:02:04,020
Messages.

31
00:02:05,280 --> 00:02:08,460
OCC Del padre íbamos a tener dos hijas.

32
00:02:09,760 --> 00:02:21,880
Entonces clase, por ejemplo, lectura, acceso dato excepción bien pero variedad de nuestra genérica

33
00:02:22,960 --> 00:02:31,900
tent acceso dato excepto estar acá listo estamos obligados excepto a implementar el constructor entonces

34
00:02:31,900 --> 00:02:32,500
generate.

35
00:02:34,640 --> 00:02:35,420
Constructor.

36
00:02:35,930 --> 00:02:36,310
Listo.

37
00:02:36,410 --> 00:02:37,130
Ahí lo tenemos.

38
00:02:37,670 --> 00:02:38,300
Otro más.

39
00:02:40,670 --> 00:02:41,330
Escritura.

40
00:02:46,190 --> 00:02:46,610
Escritura.

41
00:02:46,610 --> 00:02:49,040
Acceso auto ecepto perfecto.

42
00:02:49,190 --> 00:02:52,950
Lo mismo stents de la clase padre.

43
00:02:53,630 --> 00:02:55,890
Acceso a auto excepto el conductor.

44
00:02:59,890 --> 00:03:02,470
Con el mensaje le estoy trema la jerarquía decepciones.

45
00:03:02,530 --> 00:03:04,080
Ven, vámonos a la clase abstracta.

46
00:03:04,540 --> 00:03:05,220
Repositorio.

47
00:03:06,530 --> 00:03:11,330
Entonces podría ocurrir por Heidy, acá podríamos lanzar una sanción porque claro, qué pasa si Leidy

48
00:03:11,540 --> 00:03:16,790
este de acá en Nul podría ser perfectamente nul y no tiene sentido comparar o ir a buscar a nuestra

49
00:03:16,790 --> 00:03:18,770
lista un Heidy que sea acío.

50
00:03:19,850 --> 00:03:21,050
Previamente en asistir.

51
00:03:21,470 --> 00:03:23,420
Entonces que puedo manejar entonces si IFF?

52
00:03:28,190 --> 00:03:31,130
Y también podremos comprobar que sea mayor que cero.

53
00:03:31,280 --> 00:03:33,680
Entonces claro, por acá también un ohr.

54
00:03:34,460 --> 00:03:39,410
Entonces si el Heidy sea nulo o si menor o igual a cero.

55
00:03:40,670 --> 00:03:44,720
Bien, entonces claro, lanzamos una excepción con Trou.

56
00:03:46,730 --> 00:03:50,090
Pero cual tenemos que lanzar la de lectura entonces?

57
00:03:50,180 --> 00:03:58,300
Lectura, acceso a datos excepto con un mensaje de inválido.

58
00:03:58,370 --> 00:03:59,760
Tiene que ser mayor que cero.

59
00:04:01,970 --> 00:04:02,600
Perfecto.

60
00:04:02,790 --> 00:04:04,390
Bueno y por supuesto, distinto.

61
00:04:04,400 --> 00:04:04,580
Nulo.

62
00:04:04,730 --> 00:04:05,540
Pero con eso está bien.

63
00:04:06,140 --> 00:04:09,470
Ahora, bueno, acá marca un error porque nos dice que tenemos que manejar esta sección.

64
00:04:09,500 --> 00:04:15,350
Por supuesto, lanzarla en el método acá, porque obviamente acá no lo vamos a manejar con el TREC,

65
00:04:15,560 --> 00:04:20,330
si la estamos lanzando en la clase o método que invoque el por ahí.

66
00:04:20,450 --> 00:04:22,070
Ahí la tenemos que manejar con el trait catch.

67
00:04:22,220 --> 00:04:26,990
Acá simplemente la lanzamos, pero acá vamos a tener otro problema.

68
00:04:27,080 --> 00:04:29,750
Otro error que también lo vamos a ver y lo voy a explicar.

69
00:04:30,770 --> 00:04:33,810
Entonces frus lectura Axe4.

70
00:04:34,160 --> 00:04:34,610
Perfecto.

71
00:04:34,640 --> 00:04:35,150
Se fijan?

72
00:04:35,180 --> 00:04:35,540
Claro.

73
00:04:35,630 --> 00:04:36,200
Marca error.

74
00:04:36,230 --> 00:04:36,770
Por qué?

75
00:04:36,920 --> 00:04:38,150
Es por la interfaz.

76
00:04:38,270 --> 00:04:40,340
Recuerden que estamos implementando la interfaz.

77
00:04:40,850 --> 00:04:44,690
Ordenarle páginas l cruz repositorio se fijan.

78
00:04:44,780 --> 00:04:46,400
Nos vamos acá y acá.

79
00:04:46,400 --> 00:04:50,690
Heredamos de Cruchot repositorio y acá tenemos el método por ahí.

80
00:04:50,780 --> 00:04:55,490
Pero en esta firma o signatura no tenemos ninguna definición.

81
00:04:55,580 --> 00:04:56,270
Decepción.

82
00:04:56,360 --> 00:04:59,000
No estamos lanzando alguna excepción.

83
00:04:59,120 --> 00:05:00,560
Entonces las firmas son distinta.

84
00:05:01,430 --> 00:05:08,210
Entonces básicamente que nos dice que en la interfaz crup repositorio justamente no tiene exactamente

85
00:05:08,210 --> 00:05:10,850
la misma firma y nos está lanzando esta acepción.

86
00:05:11,180 --> 00:05:15,620
Entonces la tenemos que definir acá en la interfaz con frute también.

87
00:05:16,000 --> 00:05:17,810
Entonces es el detalle que quiere explicar.

88
00:05:18,170 --> 00:05:24,260
Entonces acá frus Pero como es una interfaz es mejor, claro, podríamos colocar lectura, no sea ningún

89
00:05:24,260 --> 00:05:24,710
problema.

90
00:05:25,490 --> 00:05:26,210
Y funciona bien.

91
00:05:26,300 --> 00:05:29,090
Y acá aparece el error, pero cómodo es una interfaz.

92
00:05:29,180 --> 00:05:35,780
Es mucho mejor indicar el tipo más genérico posible, porque así no solamente utilizamos lectura, acceso

93
00:05:35,780 --> 00:05:41,340
a datos, sino también podría ser una implementación de lectura o una implementación también de acceso

94
00:05:41,340 --> 00:05:41,720
a datos.

95
00:05:41,900 --> 00:05:47,320
Es decir, a lo que me refiero es que no solamente acá podremos implementar lectura, acceso, dato

96
00:05:47,780 --> 00:05:52,850
o lanzar esta acepción, sino también podría ser otra, pero siempre y cuando sea hija de la genérica.

97
00:05:53,910 --> 00:05:57,000
Entonces, por eso acá es mejor simplemente acceso a Dato.

98
00:05:57,210 --> 00:05:58,200
Voy a quitar acá.

99
00:05:58,620 --> 00:05:59,250
Lectura.

100
00:06:00,750 --> 00:06:07,560
Y acá también en el importa para importar de esto, y como casi define acceso a datos exception.

101
00:06:08,960 --> 00:06:10,190
Y lectura acceso a auto.

102
00:06:10,250 --> 00:06:17,540
Es hija de acceso a datos septón está perfecto, puedo lanzar al final en un método de una clase hija

103
00:06:17,630 --> 00:06:22,990
o de una clase que implementa un interfaz y la clase padre o la interfaz define un evento acepcion.

104
00:06:23,120 --> 00:06:24,430
Hay diferentes alternativa.

105
00:06:24,530 --> 00:06:31,340
Puedo declarar acá la hija una implementación hija de la que lanza la interfaz en este caso acceso a

106
00:06:31,340 --> 00:06:38,270
dato o también puede lanzar la genérica la padre acceso datos o incluso ninguna podría no implementar

107
00:06:38,270 --> 00:06:39,500
ninguna zamiento interfaz.

108
00:06:42,830 --> 00:06:43,600
Y también se puede.

109
00:06:44,400 --> 00:06:46,670
Se fijan, entonces están esas alternativas.

110
00:06:47,330 --> 00:06:48,680
Esto lo dejamos de esa forma.

111
00:06:48,740 --> 00:06:53,810
Acá, por supuesto hay errores porque estamos utilizando el porahí entonces en eliminar como buca por

112
00:06:53,810 --> 00:06:54,150
ahí.

113
00:06:54,290 --> 00:06:58,850
Acá también tenemos que lanzar la acepción 12 sobre el error, agregar en el método.

114
00:06:59,420 --> 00:07:00,950
Bueno, acá voy a poner a cancelar.

115
00:07:01,310 --> 00:07:03,020
No se preocupen, lo voy a hacer a mano.

116
00:07:03,860 --> 00:07:07,790
En este caso sería o lanzaría un tipo de lectura.

117
00:07:08,000 --> 00:07:08,960
Lectura sensato.

118
00:07:10,160 --> 00:07:16,910
Se fijan, pero acá también me alega que la interfaz Cruz Repositorio en Eliminar tampoco está definida.

119
00:07:17,120 --> 00:07:21,440
Entonces también la tengo que definir, se fijan?

120
00:07:22,310 --> 00:07:24,200
Ahora si ya lo estamos manejando.

121
00:07:25,690 --> 00:07:28,090
Ahora, qué pasa en ejemplo repositorio?

122
00:07:29,620 --> 00:07:33,550
Veamos si estamos utilizando acá, lo estamos utilizando, se fijan el porahí.

123
00:07:33,730 --> 00:07:38,350
Entonces acá tengo que utilizar el try catch y manejar esta acepción igual que el eliminar.

124
00:07:38,830 --> 00:07:44,650
Entonces podríamos sanidad todos estos código dentro de un trío, un cacho y empezar a manejar las distintas

125
00:07:44,740 --> 00:07:45,400
excepciones.

126
00:07:46,610 --> 00:07:49,730
Y que estamos creando se fijan, estamos creando, pero bien.

127
00:07:49,880 --> 00:07:55,040
Por ejemplo, podríamos colocar el Trait Cat acá desde el principio.

128
00:07:56,930 --> 00:07:57,320
Trae.

129
00:08:03,140 --> 00:08:10,250
GATS Ya que manejamos qué rol pude lanzar acá en el eliminar y por ahí di lectura de.

130
00:08:13,310 --> 00:08:19,790
Pero además, tenga que indicar el tipo más abstracto, porque recuerden que la instancia de repositorio,

131
00:08:20,150 --> 00:08:25,820
en este caso acá repositorio, es del tipo genérico de las interfaces.

132
00:08:26,910 --> 00:08:37,050
Y utiliza o lanza el tipo genérico de la acepción o el tipo padre GATT Acceso e perfecto.

133
00:08:37,920 --> 00:08:38,760
Y hoy manejamos las dos.

134
00:08:38,950 --> 00:08:42,420
Siempre tiene que ir primero a las clases hijas y después las padre.

135
00:08:42,830 --> 00:08:49,110
Recuerden lectura acceso es hija de acceso dato entonces desde la más específica hasta la más generales

136
00:08:49,200 --> 00:08:49,980
o genéricas.

137
00:08:50,750 --> 00:08:51,960
Entonces por ejemplo.

138
00:08:51,960 --> 00:08:56,310
Хотя vamos a imprimir e punto get mensajea.

139
00:08:57,780 --> 00:09:02,630
Pero además e punto la traza completa print stack 3.

140
00:09:03,590 --> 00:09:04,310
Y lo mismo acá.

141
00:09:08,960 --> 00:09:13,550
Aunque también podemos colocar algún mensaje tinto en cada uno lo pudiera manejar distinto.

142
00:09:13,640 --> 00:09:13,940
En fin.

143
00:09:14,000 --> 00:09:15,710
Pero para el ejemplo da lo mismo.

144
00:09:15,920 --> 00:09:23,570
Por ejemplo, qué pasa si quiero eliminar uno que no exista un Heidy 0 acá 0 diría dar Herron, cierto?

145
00:09:23,720 --> 00:09:24,260
Vamos a ver.

146
00:09:24,800 --> 00:09:25,580
Ejecutamos.

147
00:09:29,030 --> 00:09:34,910
Acabarlas un error, por ejemplo repositorio producto también lo tengo que manejar por por Heidy y por

148
00:09:34,910 --> 00:09:37,070
eliminar, recordemos que tenemos dos ejemplos.

149
00:09:37,160 --> 00:09:38,190
Acá se fijan.

150
00:09:38,360 --> 00:09:41,270
Entonces, claro, hay que manejar todos podríamos copiar.

151
00:09:41,900 --> 00:09:43,130
Ejemplo repositorio.

152
00:09:44,060 --> 00:09:45,170
Acá tenemos el trae.

153
00:09:49,420 --> 00:09:50,330
Voy a cerrar acá.

154
00:09:53,650 --> 00:09:54,550
Y también esto de acá.

155
00:09:59,870 --> 00:10:08,390
Bien, ordenamos acá código reforma Ether, código perfecto, volvemos ejemplos, repositorio y volvemos

156
00:10:08,390 --> 00:10:10,640
a probar, ejecutamos con el Herrán.

157
00:10:12,150 --> 00:10:16,380
Y también otro detalle que me faltó en Produto list repositorio militar.

158
00:10:16,410 --> 00:10:17,760
También estamos usando por ahí.

159
00:10:18,120 --> 00:10:19,950
Entonces acá vamos a relanzar.

160
00:10:20,040 --> 00:10:24,950
Hacemos un clic para agregar esta sección en la firma el método OK.

161
00:10:26,220 --> 00:10:30,270
De lectura perfecto y también vámonos.

162
00:10:31,650 --> 00:10:32,430
Lista.

163
00:10:33,640 --> 00:10:34,320
Y cliente?

164
00:10:35,600 --> 00:10:40,040
Porque acá también nos pide manejar el error, la acepción por el método.

165
00:10:40,100 --> 00:10:42,320
Hacemos un clic y la lanzamos bien.

166
00:10:42,440 --> 00:10:43,010
Ahora sí que si.

167
00:10:44,000 --> 00:10:46,070
Entonces volvemos ejemplo repositorio.

168
00:10:49,020 --> 00:10:49,740
Ejecutamos.

169
00:10:50,710 --> 00:10:55,420
Ahora sé que si se fijan eliminar aydin palio de ese medio de quesero.

170
00:10:56,550 --> 00:10:58,890
Y ocurre la acepción con su mensaje.

171
00:10:59,190 --> 00:11:02,160
Además, en cada método de la traza.

172
00:11:02,490 --> 00:11:11,280
Acá en haz trae repositorio línea 25, después línea 44 y en ejemplos repositorio donde se invoca el

173
00:11:11,280 --> 00:11:14,010
método, pero se origina acá en la línea 25.

174
00:11:15,030 --> 00:11:22,110
Recordemos que la línea 25 se lanza escepcion en la línea 44 se está utilizando en el eliminar acá y

175
00:11:22,110 --> 00:11:24,660
acá estamos invocando el método Eliminar.

176
00:11:24,930 --> 00:11:27,330
Con el método Main se fijan el recorrido completo.

177
00:11:27,510 --> 00:11:29,130
Acá se invoca el eliminar.

178
00:11:29,220 --> 00:11:30,870
Luego dentro de él eliminar.

179
00:11:30,960 --> 00:11:38,010
Se invoca el por Heidy y acá tenemos el porahí en la línea 25, con todo el detalle, con toda la traza

180
00:11:38,130 --> 00:11:39,990
y así podremos lanzar otra sección.

181
00:11:40,020 --> 00:11:46,860
Qué pasa si el resultado nos encuentra if resultado en nulo.

182
00:11:47,600 --> 00:11:54,600
También lanzamos otra entonces fru new lectura

183
00:12:00,240 --> 00:12:05,120
con el Leydi de Bejan.

184
00:12:05,790 --> 00:12:06,510
Vamos a probar.

185
00:12:07,020 --> 00:12:08,460
Vamos a ejemplo repositorio.

186
00:12:09,810 --> 00:12:12,480
Bien, quiero eliminar, por ejemplo, el 50.

187
00:12:19,550 --> 00:12:22,130
No, el registro con el 50 te dejan.

188
00:12:22,280 --> 00:12:24,950
No te registro y así podemos manejar errores.

189
00:12:26,630 --> 00:12:27,590
Si colocamos 2.

190
00:12:31,130 --> 00:12:32,990
No hay ningún problema, lo elimina.

191
00:12:33,710 --> 00:12:39,530
Ahora, si quiere buscar por ejemplo a Bea acá por Heidy, pero coloco 10.

192
00:12:44,690 --> 00:12:46,910
No existe registro con heridas tipifican.

193
00:12:46,940 --> 00:12:47,640
Estamos manejando.

194
00:12:47,900 --> 00:12:50,750
Ahora, para finalizar, tenemos que utilizar el de escritura.

195
00:12:51,080 --> 00:12:53,510
Vámonos a la clase abstracta por acá.

196
00:12:54,200 --> 00:12:55,070
Voy a cerrar acá.

197
00:12:57,520 --> 00:12:58,390
Acá en crear.

198
00:12:59,590 --> 00:13:03,160
Qué pasa si el objeto es nulo?

199
00:13:04,440 --> 00:13:12,420
Entonces If t igual Anul debería manejar esto, no es cierto, porque no podemos crear un nuevo registro

200
00:13:12,570 --> 00:13:13,050
nulo.

201
00:13:13,290 --> 00:13:14,810
No tiene sentido agregar un NULL.

202
00:13:15,240 --> 00:13:22,710
Entonces constru new en este caso sería escritura, escritura, acceso perfecto,

203
00:13:28,230 --> 00:13:29,580
algo simple perfecto.

204
00:13:29,640 --> 00:13:33,420
Acá nos pide manejar la sección, entonces se define en el método.

205
00:13:34,080 --> 00:13:38,480
Acá la lanzamos, con lo cual lanzamos la concreta escritura.

206
00:13:39,330 --> 00:13:43,590
Pero también otro error porque tenemos que ir a la interfaz CRUD repositorio.

207
00:13:43,650 --> 00:13:45,750
Entonces nos vamos al club repositorio.

208
00:13:46,860 --> 00:13:49,110
Yen crear por acá en crear

209
00:13:52,140 --> 00:13:59,340
acceso dato except perfecto a aca en editar de forma automática nos puso lectura en Hayter, pero vamos

210
00:13:59,340 --> 00:14:07,890
a colocar acceso a datos porque recuérdense que este import lo de quitar porque recordemos que nos pidió

211
00:14:08,040 --> 00:14:16,710
entrante en list cliente repositorio acá en editar lanzar lectura access dato porque estamos utilizando

212
00:14:16,710 --> 00:14:19,650
el por Heidy y lo mismo un producto acá también.

213
00:14:20,070 --> 00:14:25,200
Pero la interfaz siempre tiene que ir el tipo más genérico, porque la presentación que podríamos utilizar

214
00:14:25,290 --> 00:14:29,430
no solamente lectura, acceso, dato, sino cualquier otra que queremos implementar.

215
00:14:29,570 --> 00:14:30,300
Bien, regresemos.

216
00:14:30,300 --> 00:14:31,320
Cruz Repositorio.

217
00:14:32,390 --> 00:14:37,410
Y así hoy estamos manejando todas las excepciones genérica en los métodos y no se cree que estamos listos.

218
00:14:38,100 --> 00:14:44,970
Entonces volvamos ejemplo repositorio, pero no producto, sino el otro ejemplo repositorio.

219
00:14:45,480 --> 00:14:53,970
Acá, acá tenemos crear dentro del TROI, así que también podría ocurrir un error repo punto crear.

220
00:14:56,360 --> 00:14:58,670
Nul el origen lo permite.

221
00:14:58,760 --> 00:14:59,430
Pero no importa.

222
00:14:59,450 --> 00:15:01,160
Lo estamos manejando con el troi catch.

223
00:15:02,060 --> 00:15:04,820
Ahora, si lo ejecutamos va a caer en el tipo genérico.

224
00:15:04,940 --> 00:15:09,390
Acá incluso podríamos dar una marca para distinguir en el mensaje.

225
00:15:10,130 --> 00:15:13,460
Entonces acá lectura, acá

226
00:15:16,040 --> 00:15:21,830
escritura, perdón, acá no genérica, genérica escritura.

227
00:15:21,840 --> 00:15:24,030
No la tenemos acá genérica o padre.

228
00:15:24,620 --> 00:15:25,730
Entonces ejecutamos.

229
00:15:25,820 --> 00:15:27,050
Va a caer en genética.

230
00:15:27,140 --> 00:15:28,430
Por qué no tenemos escritura?

231
00:15:29,270 --> 00:15:31,670
Pero recuerden, escritura es tipo genérica.

232
00:15:31,760 --> 00:15:33,290
Así que acá se da capturas.

233
00:15:34,330 --> 00:15:38,290
Entonces, error al insertar un objeto nulo y en genérica se fijan.

234
00:15:38,530 --> 00:15:40,690
Pero podríamos ser un poco más específico.

235
00:15:41,320 --> 00:15:51,080
Entonces acá bajamos catch escritura, acceso, dato e listo.

236
00:15:52,160 --> 00:15:54,050
Voy a copiar esto porque es muy parecido.

237
00:15:55,190 --> 00:15:59,120
Lo pegamos escritura bien.

238
00:15:59,240 --> 00:16:06,200
Ahora, si ejecutamos va a caer acá, porque todo américano exactamente esa excepción, ya que la clase

239
00:16:06,210 --> 00:16:06,860
abstracta.

240
00:16:08,880 --> 00:16:11,520
Estamos lanzando escritura esta implementación concreta.

241
00:16:11,640 --> 00:16:16,800
Escritura asexuada, es cierto, pero también es tipo de acceso, dato es hecho.

242
00:16:18,270 --> 00:16:23,400
Entonces recuerden siempre de lo particular a lo general, de clase cija a clase padre.

243
00:16:27,850 --> 00:16:28,420
Escritura.

244
00:16:29,350 --> 00:16:36,070
Error al insertar un objeto nulo se fijan y así podríamos empezar a manejar los errores en nuestro repositorio.

245
00:16:38,240 --> 00:16:44,960
También podrían manejar o antes de insertar, ver si el Heidy de tu objeto ya está registrado en la

246
00:16:44,960 --> 00:16:48,320
lista en el data shop también y si existe, lanzar una excepción.

247
00:16:48,380 --> 00:16:54,330
Pero bueno, hay varias cosas que podemos validar manejar errores, pero acá lo importante ver un manejo

248
00:16:54,330 --> 00:17:01,760
error típico base auto con clase es padre genérica, una clase exepción genérica y también implementaciones

249
00:17:01,760 --> 00:17:06,680
hijas también recuerden que no te clase abstracta list repositorio es solamente del list que maneja

250
00:17:06,740 --> 00:17:11,000
una lista, una red list, pero podríamos tener un repositorio con JS con bases de datos.

251
00:17:11,030 --> 00:17:11,400
En fin.

252
00:17:11,540 --> 00:17:13,580
Y ese repositorio también.

253
00:17:13,640 --> 00:17:20,030
Una clase abstracta podría implementar otras implementaciones, clases de acceso, dato que sean hija

254
00:17:20,120 --> 00:17:23,780
de la que tenemos definida en la interfaz acceso datos septón.

255
00:17:24,470 --> 00:17:27,710
No necesariamente tiene que ser escritura o lectura que tenemos acá.

256
00:17:27,800 --> 00:17:35,150
Podría ser, por ejemplo lectura, JDBC, acceso, dato, pero siendo hija de acceso dato exception

257
00:17:35,270 --> 00:17:36,050
no hay ningún problema.

258
00:17:36,170 --> 00:17:38,480
Nuestro código queda bastante genérico, nada más.

259
00:17:38,570 --> 00:17:40,520
Continuamos en la siguiente clase.
