1 00:00:02,419 --> 00:00:09,080 La filosofía es esa, que es, la máquina virtual de Java tiene un montón de posibles excepciones contempladas. 2 00:00:10,119 --> 00:00:15,580 Lectura, o sea, string que me has metido por consola que no casa con el tipo de dato que yo espero. 3 00:00:16,239 --> 00:00:18,820 Que estás en un array y te estás saliendo de él. 4 00:00:19,300 --> 00:00:22,160 Que estás tratando de hacer un fichero y el fichero no existe. 5 00:00:22,660 --> 00:00:26,179 Pues tiene un montón de situaciones de esas contempladas, que las contempla. 6 00:00:26,260 --> 00:00:29,699 Estas, estas no me gustan, estas no me gustan, estas no me gustan, se podrían dar y son feas. 7 00:00:30,359 --> 00:00:32,119 Pues para cada una de ellas hace una clase. 8 00:00:32,420 --> 00:00:34,759 una clase, que son esas alrededor 9 00:00:34,759 --> 00:00:36,659 de 400 que están en la 10 00:00:36,659 --> 00:00:38,679 JRE, una clase, entonces tú 11 00:00:38,679 --> 00:00:40,579 haces tu código y tu programa y patatín 12 00:00:40,579 --> 00:00:42,399 entonces la máquina virtual se pone a ejecutarlo 13 00:00:42,399 --> 00:00:44,619 y en ese código 14 00:00:44,619 --> 00:00:46,659 va a acabar llamando siempre en algún 15 00:00:46,659 --> 00:00:48,579 momento a métodos de la 16 00:00:48,579 --> 00:00:50,659 JRE, lógicamente, como cuando hacemos 17 00:00:50,659 --> 00:00:52,560 un next in, como cuando 18 00:00:52,560 --> 00:00:54,359 hacemos un system out print del n 19 00:00:54,359 --> 00:00:56,539 cuando usamos la clase string 20 00:00:56,539 --> 00:00:58,460 y llamamos al charat, cuando 21 00:00:58,460 --> 00:01:00,640 hacemos un array y ponemos los corchetitos 22 00:01:00,640 --> 00:01:02,020 estamos todo el rato 23 00:01:02,020 --> 00:01:04,060 llamando a clases de la máquina virtual 24 00:01:04,060 --> 00:01:04,760 todo el rato 25 00:01:04,760 --> 00:01:07,980 entonces, la máquina virtual 26 00:01:07,980 --> 00:01:10,359 va saltando, se va a las clases que estamos llamando 27 00:01:10,359 --> 00:01:11,879 y detecta 28 00:01:11,879 --> 00:01:13,379 uy, pues mira, justo aquí 29 00:01:13,379 --> 00:01:16,159 está pasando con el dato que has metido 30 00:01:16,159 --> 00:01:18,000 o con lo que estás haciendo con el índice 31 00:01:18,000 --> 00:01:19,920 del array, justo está pasando una de las cosas 32 00:01:19,920 --> 00:01:21,319 que yo tengo apuntadas en la libreta 33 00:01:21,319 --> 00:01:24,000 que no me gustan, pues creo el objeto 34 00:01:24,000 --> 00:01:25,599 excepción correspondiente 35 00:01:25,599 --> 00:01:27,900 ¿vale? cada situación 36 00:01:27,900 --> 00:01:29,840 que la máquina virtual tiene apuntada en la libreta 37 00:01:29,840 --> 00:01:31,040 esto no me gusta, esto no me gusta 38 00:01:31,040 --> 00:01:33,099 tiene una clase asociada 39 00:01:33,099 --> 00:01:35,040 pues dice, pues mira, uy, está pasando 40 00:01:35,040 --> 00:01:36,840 algo de lo que no me gusta, creo 41 00:01:36,840 --> 00:01:39,000 un objeto de la clase excepción que tengo 42 00:01:39,000 --> 00:01:39,560 asociada 43 00:01:39,560 --> 00:01:41,760 y te lo entrego 44 00:01:41,760 --> 00:01:44,079 y te lo entrego y ya está 45 00:01:44,079 --> 00:01:47,120 y tú decides qué haces 46 00:01:47,120 --> 00:01:49,060 lo que decíamos el otro día es que tenemos 47 00:01:49,060 --> 00:01:50,700 dos posibilidades y efectivamente tenemos dos 48 00:01:50,700 --> 00:01:52,799 y solo dos, ¿lo ignoras? 49 00:01:53,579 --> 00:01:55,200 pues entonces si lo ignoras 50 00:01:55,200 --> 00:01:57,099 lo que yo hago como máquina virtual es 51 00:01:57,099 --> 00:01:58,480 paro el programa 52 00:01:58,480 --> 00:02:00,840 y se acabó, no hay más que hacer, si lo ignoras 53 00:02:00,840 --> 00:02:02,200 para el programa, no hay más que hacer 54 00:02:02,200 --> 00:02:04,959 pero tú como programador 55 00:02:04,959 --> 00:02:07,060 dices, jolines, no quiero que la máquina virtual 56 00:02:07,060 --> 00:02:08,460 pare el programa en cuanto 57 00:02:08,460 --> 00:02:10,900 salga una excepción de esta si él me la 58 00:02:10,900 --> 00:02:12,520 entregue, no quiero porque es radical 59 00:02:12,520 --> 00:02:14,900 entonces el usuario va a estar ahí de repente con el programa 60 00:02:14,900 --> 00:02:16,780 para, ya está, no quiero 61 00:02:16,780 --> 00:02:19,080 vale, pues entonces hacíamos 62 00:02:19,080 --> 00:02:20,520 esta otra alternativa 63 00:02:20,520 --> 00:02:21,900 vale 64 00:02:21,900 --> 00:02:24,960 que es meter el código 65 00:02:24,960 --> 00:02:26,580 que prevemos 66 00:02:26,580 --> 00:02:29,080 que puede que des excepción 67 00:02:29,080 --> 00:02:30,740 o no solo 68 00:02:30,740 --> 00:02:32,740 que lo preveamos, sino que a lo mejor 69 00:02:32,740 --> 00:02:34,780 ya lo hemos pasado a fase de pruebas 70 00:02:34,780 --> 00:02:36,979 y han dicho, uy, cuidadín, que este 71 00:02:36,979 --> 00:02:38,819 si yo meto el número mal, te da 72 00:02:38,819 --> 00:02:40,740 excepción. Pues el código que 73 00:02:40,740 --> 00:02:42,960 ya sabemos, porque lo sabemos de otras veces, 74 00:02:43,599 --> 00:02:44,960 o porque lo has dicho en la fase de pruebas 75 00:02:44,960 --> 00:02:46,780 o por lo que sea, el código que 76 00:02:46,780 --> 00:02:48,800 sabemos que puede dar una excepción 77 00:02:48,800 --> 00:02:50,960 lo metemos en el try-catch. 78 00:02:51,319 --> 00:02:52,659 ¿Vale? Y esto ya 79 00:02:52,659 --> 00:02:54,740 ¿qué significaba? Lo que 80 00:02:54,740 --> 00:02:56,759 dijimos el otro día. Entonces 81 00:02:56,759 --> 00:02:59,180 la máquina virtual viene por aquí, papapá, papapá. 82 00:03:00,740 --> 00:03:02,620 Y entra en el try-catch. 83 00:03:04,099 --> 00:03:05,199 Cuidado, ojo. 84 00:03:05,400 --> 00:03:08,639 El try-catch abre automáticamente un bloque de llaves. 85 00:03:09,280 --> 00:03:10,960 Luego recordad el ámbito de las variables. 86 00:03:12,159 --> 00:03:15,580 Entonces, lo que tú declares dentro del try-catch no se va a ver fuera. 87 00:03:16,879 --> 00:03:17,280 ¿Verdad? 88 00:03:17,379 --> 00:03:22,099 Entonces, si en este código quisiéramos mostrar el número introducido. 89 00:03:23,740 --> 00:03:24,219 Claro. 90 00:03:24,639 --> 00:03:25,500 No, no te pondría null. 91 00:03:25,819 --> 00:03:27,180 El compilador es que no te deja. 92 00:03:28,460 --> 00:03:28,939 ¿Vale? 93 00:03:34,419 --> 00:03:37,800 introdujiste 94 00:03:37,800 --> 00:03:38,580 introdujiste 95 00:03:38,580 --> 00:03:41,159 introdujiste 96 00:03:41,159 --> 00:03:43,020 que feo, suena 97 00:03:43,020 --> 00:03:45,520 vale 98 00:03:45,520 --> 00:03:47,020 imagínate que quieres poner esto 99 00:03:47,020 --> 00:03:50,020 pues lógicamente aquí el compilador te va a decir 100 00:03:50,020 --> 00:03:51,139 ¿eh? ¿quién es num? 101 00:03:51,259 --> 00:03:52,000 no tengo ni idea 102 00:03:52,000 --> 00:03:55,979 claro, porque la hemos declarado dentro del try catch 103 00:03:55,979 --> 00:03:57,560 y al declarar 104 00:03:57,560 --> 00:03:58,439 efectivamente 105 00:03:58,439 --> 00:04:00,819 que solución tan sencilla 106 00:04:00,819 --> 00:04:03,280 bueno, no pasa nada, yo la tengo que leer dentro 107 00:04:03,280 --> 00:04:07,159 Pero eso sí, la sentencia de lectura, que es la que puede, que me dé la excepción, es la que tiene que estar dentro. 108 00:04:07,780 --> 00:04:09,240 Pero hombre, declara la fuera. 109 00:04:11,300 --> 00:04:12,120 Y ya está. 110 00:04:17,279 --> 00:04:22,500 Aún así, como podíamos prever, aún así el compilador se va a quejar. 111 00:04:23,959 --> 00:04:24,540 ¿Por qué? 112 00:04:26,120 --> 00:04:30,699 Porque te dice, oye, yo no tengo la seguridad de que este try se vaya a ejecutar correctamente. 113 00:04:30,699 --> 00:04:32,459 porque si next 114 00:04:32,459 --> 00:04:34,500 in me ha sacado una excepción 115 00:04:34,500 --> 00:04:36,279 no se va a llegar a hacer la 116 00:04:36,279 --> 00:04:38,360 asignación, con lo cual 117 00:04:38,360 --> 00:04:39,939 podría no tener valor 118 00:04:39,939 --> 00:04:42,439 entonces pues bueno 119 00:04:42,439 --> 00:04:44,360 uno da la solución en función de como quiera 120 00:04:44,360 --> 00:04:45,720 que funcione su programa, claro 121 00:04:45,720 --> 00:04:48,279 pero un valor lo tiene que 122 00:04:48,279 --> 00:04:48,800 inicializar 123 00:04:48,800 --> 00:04:51,199 vale 124 00:04:51,199 --> 00:04:54,120 bueno, pues esto por un lado, y entonces 125 00:04:54,120 --> 00:04:56,259 el try catch se comportaba como un if 126 00:04:56,259 --> 00:04:58,199 que es, intenta hacer 127 00:04:58,199 --> 00:04:58,939 todo esto 128 00:04:58,939 --> 00:05:01,699 que lo consigues genial 129 00:05:01,699 --> 00:05:03,360 del catch te olvidas 130 00:05:03,360 --> 00:05:04,800 y tu programa continúa 131 00:05:04,800 --> 00:05:16,189 en cualquier caso 132 00:05:16,189 --> 00:05:17,269 vale 133 00:05:17,269 --> 00:05:19,649 que en algún momento 134 00:05:19,649 --> 00:05:21,410 te sale esa excepción 135 00:05:21,410 --> 00:05:23,769 pum, porque next in 136 00:05:23,769 --> 00:05:26,230 nos hemos metido ahí, hemos empezado a ejecutar 137 00:05:26,230 --> 00:05:27,949 código, la máquina virtual ha dicho que 138 00:05:27,949 --> 00:05:29,949 lo que intentas hacer está en la libretita de 139 00:05:29,949 --> 00:05:32,149 cosas que no, ha ido a la clase 140 00:05:32,149 --> 00:05:33,910 correspondiente, ha generado el objeto 141 00:05:33,910 --> 00:05:35,629 pues ha pasado todo eso 142 00:05:35,629 --> 00:05:37,769 pues entonces aquí en este punto 143 00:05:37,769 --> 00:05:39,670 en este, nos ha llegado a nosotros 144 00:05:39,670 --> 00:05:41,430 ese objeto, a nosotros, bueno 145 00:05:41,430 --> 00:05:43,329 la máquina virtual que es la que lo está ejecutando, claro 146 00:05:43,329 --> 00:05:45,550 la máquina virtual, cuando hace 147 00:05:45,550 --> 00:05:47,509 el nexting, en lugar de llegarle 148 00:05:47,509 --> 00:05:49,569 el resultado del método, que es el numerito 149 00:05:49,569 --> 00:05:50,889 para asignárselo a num 150 00:05:50,889 --> 00:05:53,149 no le ha llegado el resultado del método 151 00:05:53,149 --> 00:05:55,629 con lo cual no puede asignarlo a num, lo que le ha llegado 152 00:05:55,629 --> 00:05:57,589 es toma, un objeto excepción, eso es lo que 153 00:05:57,589 --> 00:05:59,610 le ha llegado, dice, ojo, ¿qué hago yo con este 154 00:05:59,610 --> 00:06:01,769 objeto excepción? pues se pone 155 00:06:01,769 --> 00:06:03,670 a mirar en todos 156 00:06:03,670 --> 00:06:05,589 los cats que haya, que no tiene 157 00:06:05,589 --> 00:06:07,089 por qué haber uno, puede haber muchos 158 00:06:07,089 --> 00:06:11,079 ¿está? 159 00:06:12,540 --> 00:06:13,180 magnífico 160 00:06:13,180 --> 00:06:21,259 por poner la primera que se me ha ocurrido 161 00:06:21,259 --> 00:06:30,329 vamos a 162 00:06:30,329 --> 00:06:33,709 vamos a poner aquí 163 00:06:33,709 --> 00:06:38,589 sí, pero voy a poner otra porque esta 164 00:06:38,589 --> 00:06:40,550 como no hay una sentencia dentro que la pueda 165 00:06:40,550 --> 00:06:42,629 generar, me dice 166 00:06:42,629 --> 00:06:44,730 pero bueno, ¿para qué me pones esta? esta es imposible 167 00:06:48,810 --> 00:06:59,569 Por ejemplo, vamos a imaginarnos para que esto sea un poquito así más... 168 00:06:59,569 --> 00:07:11,870 Vamos a suponer que queremos poner este numerito en realidad en un array, por lo que sea. 169 00:07:12,970 --> 00:07:20,209 En la primera posición de un array, entonces aquí haríamos números de cero igual a next in. 170 00:07:29,360 --> 00:07:32,920 Se me ha olvidado ya todo, yo es que ya no tengo edad de estar aquí. 171 00:07:33,079 --> 00:07:35,899 No, no es verdad, es mentira 172 00:07:35,899 --> 00:07:38,639 Me sigue apeteciendo muchísimo 173 00:07:38,639 --> 00:07:39,620 Estudiar 174 00:07:39,620 --> 00:07:40,319 Es raro, pero 175 00:07:40,319 --> 00:07:43,540 No, mi opinión no, me sigue apeteciendo 176 00:07:43,540 --> 00:07:48,000 Claro, y te divierte 177 00:07:48,000 --> 00:07:49,339 Pues seguir conociendo más cosas 178 00:07:49,339 --> 00:07:52,439 Bueno, pues entonces 179 00:07:52,439 --> 00:07:53,920 En este caso, por ejemplo 180 00:07:53,920 --> 00:07:55,439 Podríamos considerar 181 00:07:55,439 --> 00:07:58,680 A ver, aquí puede que me salga una excepción 182 00:07:58,680 --> 00:07:59,959 Pero aunque aquí no me salga 183 00:07:59,959 --> 00:08:02,139 Aquí puede que me salga una 184 00:08:02,139 --> 00:08:04,259 porque estoy accediendo a una posición de un array 185 00:08:04,259 --> 00:08:07,379 y, hombre, nosotros tenemos el array justo arriba. 186 00:08:08,019 --> 00:08:11,300 Pero a lo mejor en otro caso el array no lo tenemos justo arriba. 187 00:08:11,480 --> 00:08:13,459 Si nos lo han pasado, vete a saber de no sé dónde 188 00:08:13,459 --> 00:08:17,180 y no sabemos si tiene espacio en esa posición o no. 189 00:08:18,079 --> 00:08:20,759 Vale, entonces está, por ejemplo, un ejemplito tonto, 190 00:08:20,860 --> 00:08:23,040 pero bueno, es un ejemplito en el cual aquí a lo mejor 191 00:08:23,040 --> 00:08:24,699 podrían salir dos excepciones. 192 00:08:25,600 --> 00:08:25,819 ¿Vale? 193 00:08:25,939 --> 00:08:29,639 En este caso, de hecho, si yo he declarado números así, 194 00:08:29,639 --> 00:08:32,120 pues 195 00:08:32,120 --> 00:08:34,360 aunque aquí no me salga excepción 196 00:08:34,360 --> 00:08:35,759 porque yo he metido bien el entero 197 00:08:35,759 --> 00:08:37,320 luego me va a salir aquí 198 00:08:37,320 --> 00:08:40,139 y cuál me va a salir, la que ya nos ha salido otras veces 199 00:08:40,139 --> 00:08:41,419 oye, que te has pasado el array 200 00:08:41,419 --> 00:08:43,860 bueno, pues si yo quiero capturar 201 00:08:43,860 --> 00:08:45,799 varias posibles excepciones 202 00:08:45,799 --> 00:08:47,600 porque preveo, porque he comprobado 203 00:08:47,600 --> 00:08:50,019 que mi código puede 204 00:08:50,019 --> 00:08:51,799 petar por varios sitios 205 00:08:51,799 --> 00:08:54,419 y no quiero que por ninguno de esos se pare 206 00:08:54,419 --> 00:08:55,519 sino que siga 207 00:08:55,519 --> 00:08:57,340 pues tengo que hacer varios cuts 208 00:08:57,340 --> 00:09:00,460 ¿cuál es la primera que capturo? 209 00:09:00,580 --> 00:09:01,220 venga, esta 210 00:09:01,220 --> 00:09:04,419 entonces 211 00:09:04,419 --> 00:09:06,580 vamos a imaginar que aquí se da 212 00:09:06,580 --> 00:09:08,419 la primera de las excepciones 213 00:09:08,419 --> 00:09:11,159 este ha metido 3,4 214 00:09:11,159 --> 00:09:12,460 como ha metido 3,4 215 00:09:12,460 --> 00:09:14,440 esto ya no funciona 216 00:09:14,440 --> 00:09:16,840 y en lugar de llegar el numerito 217 00:09:16,840 --> 00:09:17,980 resultado sale la excepción 218 00:09:17,980 --> 00:09:20,559 pues la máquina virtual se encuentra con el objeto excepción 219 00:09:20,559 --> 00:09:22,139 que le llega ahí y dice, ah, vale 220 00:09:22,139 --> 00:09:23,559 como no estoy en un try-catch 221 00:09:23,559 --> 00:09:26,620 no paro, si no estuviéramos 222 00:09:26,620 --> 00:09:28,740 en un trycat, ya sabe lo que tiene que hacer, facilísimo 223 00:09:28,740 --> 00:09:30,799 va, programa detenido, se acabó 224 00:09:30,799 --> 00:09:32,659 y me muestra una lerira roja por 225 00:09:32,659 --> 00:09:33,940 piedad, pero ya está 226 00:09:33,940 --> 00:09:36,659 pero como está en un trycat, dice, ah, que no tengo que 227 00:09:36,659 --> 00:09:38,659 parar el programa, no tengo que pararlo, vale 228 00:09:38,659 --> 00:09:40,399 pues venga, voy a coger este objeto 229 00:09:40,399 --> 00:09:42,659 voy a ver de qué clase es, de esta 230 00:09:42,659 --> 00:09:44,600 clase, pues me pongo a mirar 231 00:09:44,600 --> 00:09:46,580 todas las cats una tras otra, hasta 232 00:09:46,580 --> 00:09:48,419 que encuentre la primera 233 00:09:48,419 --> 00:09:49,759 que coincide 234 00:09:49,759 --> 00:09:52,700 en este caso, si es input time, ah, pues 235 00:09:52,700 --> 00:09:54,600 mira, la primera, ya encontró la primerita que 236 00:09:54,600 --> 00:09:56,720 coincide, pues me meto a hacer lo que haya en el catch 237 00:09:56,720 --> 00:09:58,700 y ya está, y una vez 238 00:09:58,700 --> 00:10:00,740 que lo he hecho, continúo 239 00:10:00,740 --> 00:10:01,159 por aquí 240 00:10:01,159 --> 00:10:04,679 ¿vale? porque no se 241 00:10:04,679 --> 00:10:06,519 para en ningún caso, que 242 00:10:06,519 --> 00:10:08,659 resulta que esta sentencia no dio 243 00:10:08,659 --> 00:10:10,820 excepción porque el tío metió 3 244 00:10:10,820 --> 00:10:12,740 con lo cual el 3 genera 245 00:10:12,740 --> 00:10:14,559 un next incorrecto, me devuelve el 246 00:10:14,559 --> 00:10:15,259 numerito 3 247 00:10:15,259 --> 00:10:18,240 y ahora ya me pongo a hacer la asignación 248 00:10:18,240 --> 00:10:20,440 en el momento de hacer la asignación, la máquina virtual 249 00:10:20,440 --> 00:10:22,320 dice, uy, nada 250 00:10:22,320 --> 00:10:24,480 pues te saca el array in desbound exception 251 00:10:24,480 --> 00:10:26,740 vale, pues entonces en este punto nos llega 252 00:10:26,740 --> 00:10:28,840 la write in this bound exception, ¿qué hacemos con él? 253 00:10:28,980 --> 00:10:31,039 ¿paramos? no, no paramos, porque hay un try catch 254 00:10:31,039 --> 00:10:32,759 pues vamos uno por uno 255 00:10:32,759 --> 00:10:34,500 ¿es esta? no, no es esta 256 00:10:34,500 --> 00:10:36,879 ¿es esta? ah, sí, pues 257 00:10:36,879 --> 00:10:39,019 esta sí que es, pues voy a hacer lo que haga el catch 258 00:10:39,019 --> 00:10:40,019 si es que tiene algo 259 00:10:40,019 --> 00:10:49,850 ¿que resulta que esta no está capturada? 260 00:10:50,129 --> 00:10:51,210 ¿y la otra sí? 261 00:10:52,210 --> 00:10:53,590 pues sí que pararía el programa 262 00:10:53,590 --> 00:10:54,789 ¿vale? 263 00:10:55,389 --> 00:10:57,929 el programa no se para cuando encuentra 264 00:10:57,929 --> 00:11:00,090 un catch que encaja con la excepción 265 00:11:00,090 --> 00:11:01,110 solo en ese caso 266 00:11:01,110 --> 00:11:02,950 En ese caso hace el catch 267 00:11:02,950 --> 00:11:04,169 Y luego salta aquí 268 00:11:04,169 --> 00:11:07,610 Pero si habiendo un try catch 269 00:11:07,610 --> 00:11:09,190 Resulta que ninguna 270 00:11:09,190 --> 00:11:10,509 De las posibles 271 00:11:10,509 --> 00:11:13,009 Excepciones contempladas coincide 272 00:11:13,009 --> 00:11:14,549 Con la que se ha saltado de verdad 273 00:11:14,549 --> 00:11:16,409 Pues entonces si que para 274 00:11:16,409 --> 00:11:18,110 Dice es que esta no la tengo capturada 275 00:11:18,110 --> 00:11:19,350 Entonces ahí si que paro 276 00:11:19,350 --> 00:11:24,539 Vale pues eso por un lado 277 00:11:24,539 --> 00:11:26,480 Así funciona el try catch básico 278 00:11:26,480 --> 00:11:28,320 Este es un try multi catch 279 00:11:28,320 --> 00:11:29,500 Vale 280 00:11:29,500 --> 00:11:33,759 El multi catch 281 00:11:33,759 --> 00:11:35,460 este se puede poner también 282 00:11:35,460 --> 00:11:37,600 metiendo todas las posibilidades en la misma 283 00:11:37,600 --> 00:11:39,559 poniéndolas con una barrita 284 00:11:39,559 --> 00:11:39,919 así 285 00:11:39,919 --> 00:11:42,980 input mismatch 286 00:11:42,980 --> 00:11:45,519 claro, o array 287 00:11:45,519 --> 00:11:46,539 in the spawn o no sé qué 288 00:11:46,539 --> 00:11:49,200 es más cómodo, pero ¿cuál es la pega? 289 00:11:50,360 --> 00:11:51,379 tú aquí puedes 290 00:11:51,379 --> 00:11:53,480 tratar de forma separada 291 00:11:53,480 --> 00:11:55,460 lo que quieres hacer en caso de 292 00:11:55,460 --> 00:11:57,700 cada excepción, ¿qué ha sido esta? 293 00:11:57,820 --> 00:11:58,879 has metido mal el número 294 00:11:58,879 --> 00:12:01,240 que te ha salido el array, no hay sitio en el array 295 00:12:01,240 --> 00:12:03,299 las puedes tratar de forma separada 296 00:12:03,299 --> 00:12:05,299 y para cada uno haces una cosa distinta 297 00:12:05,299 --> 00:12:06,720 que es lo bonito y lo ideal 298 00:12:06,720 --> 00:12:09,000 si tú las pones todas aquí 299 00:12:09,000 --> 00:12:10,899 es esta, o es esta otra 300 00:12:10,899 --> 00:12:13,159 o es esta otra, pues tienes un único catch 301 00:12:13,159 --> 00:12:15,340 para todas, pues ha habido una excepción 302 00:12:15,340 --> 00:12:16,679 la que sea, entonces depende 303 00:12:16,679 --> 00:12:17,840 de lo que quieras hacer, ¿vale? 304 00:12:18,320 --> 00:12:19,080 ¿qué ibas a preguntar? 305 00:12:19,080 --> 00:12:23,399 el or lo que haces 306 00:12:23,399 --> 00:12:25,019 va una por una, ¿es esta? 307 00:12:25,139 --> 00:12:26,899 no, ¿es la siguiente que está en el or? 308 00:12:27,000 --> 00:12:28,480 no, ¿es la siguiente que está en el or? no 309 00:12:28,480 --> 00:12:30,840 si no encuentra ninguna es cuando para el programa 310 00:12:30,840 --> 00:12:33,039 si encuentra alguna ya se mete 311 00:12:33,039 --> 00:12:34,960 en el catch, pero es que se va a meter 312 00:12:34,960 --> 00:12:36,860 en el mismo catch, sea cual sea de todas 313 00:12:36,860 --> 00:12:39,120 sea cual sea, entonces bueno, no distingues 314 00:12:39,120 --> 00:12:40,700 a la hora de darle una 315 00:12:40,700 --> 00:12:42,340 realimentación al usuario 316 00:12:42,340 --> 00:12:44,740 pues no distingues 317 00:12:44,740 --> 00:12:46,980 vale 318 00:12:46,980 --> 00:12:48,460 no distingues 319 00:12:48,460 --> 00:12:50,679 pero podrías hacerlo 320 00:12:50,679 --> 00:12:52,980 vale, he mentido como casi 321 00:12:52,980 --> 00:12:54,139 siempre, casi siempre 322 00:12:54,139 --> 00:12:55,559 en casi todo lo que os digo ahí 323 00:12:55,559 --> 00:12:57,460 siempre hay un 1% de mentira 324 00:12:57,460 --> 00:13:02,000 un 1% solo, porque claro 325 00:13:02,000 --> 00:13:04,279 Todo tiene una vía de escape 326 00:13:04,279 --> 00:13:05,740 Que algunas las decimos y otras no 327 00:13:05,740 --> 00:13:06,639 Porque son un poco 328 00:13:06,639 --> 00:13:09,580 Vale, pero es un 1% solo 329 00:13:09,580 --> 00:13:11,720 La trola que te meto es de 1% 330 00:13:11,720 --> 00:13:13,120 Te la podría meter más gorda 331 00:13:13,120 --> 00:13:13,580 Pero no 332 00:13:13,580 --> 00:13:17,039 Pues 333 00:13:17,039 --> 00:13:19,779 Seguramente se sorprende y se da cuenta 334 00:13:19,779 --> 00:13:20,340 De que sí 335 00:13:20,340 --> 00:13:24,980 Tú no pruebes por si acaso 336 00:13:24,980 --> 00:13:29,559 Vale, ¿en qué he mentido un poquito? 337 00:13:29,960 --> 00:13:31,320 Pues que este objeto X 338 00:13:31,320 --> 00:13:33,620 yo lo he obviado 339 00:13:33,620 --> 00:13:35,279 entonces 340 00:13:35,279 --> 00:13:37,100 cuando a este punto 341 00:13:37,100 --> 00:13:39,200 ha llegado el objeto excepción 342 00:13:39,200 --> 00:13:41,620 porque ha pasado esa cosa rara 343 00:13:41,620 --> 00:13:42,679 ha llegado el objeto excepción 344 00:13:42,679 --> 00:13:45,700 ese objeto excepción le ha llegado a la máquina virtual 345 00:13:45,700 --> 00:13:47,620 entonces la máquina virtual ya hemos 346 00:13:47,620 --> 00:13:49,340 dicho que mira la clase de ese objeto 347 00:13:49,340 --> 00:13:51,840 para ir catch por catch hasta que encuentre la que encaja 348 00:13:51,840 --> 00:13:53,700 pero es que el objeto enterito 349 00:13:53,700 --> 00:13:55,299 lo tiene aquí metido 350 00:13:55,299 --> 00:13:57,019 lo tiene ahí el objeto entero 351 00:13:57,019 --> 00:13:59,860 ese objeto se va a meter de golpe en esta 352 00:13:59,860 --> 00:14:02,620 entonces si aquí se nos ha lanzado 353 00:14:02,620 --> 00:14:04,480 una excepción de tipo input 354 00:14:04,480 --> 00:14:06,360 mis match exception pues ese objeto 355 00:14:06,360 --> 00:14:08,539 excepción se queda aquí metido 356 00:14:08,539 --> 00:14:10,620 en x y yo aquí puedo usar 357 00:14:10,620 --> 00:14:11,559 ese x si quiero 358 00:14:11,559 --> 00:14:13,980 y ese x que tiene 359 00:14:13,980 --> 00:14:16,340 pues tiene métodos como por ejemplo 360 00:14:16,340 --> 00:14:18,139 el print extract trace 361 00:14:18,139 --> 00:14:19,659 que que te hace 362 00:14:19,659 --> 00:14:21,179 la línea roja 363 00:14:21,179 --> 00:14:24,419 con lo cual cuando decimos que la máquina 364 00:14:24,419 --> 00:14:27,320 sin pararte el programa 365 00:14:27,320 --> 00:14:28,679 esto es para líneas rojas 366 00:14:28,679 --> 00:14:31,100 entonces cuando nosotros decimos 367 00:14:31,100 --> 00:14:32,480 que no hay un try catch 368 00:14:32,480 --> 00:14:34,600 y que la máquina virtual al ver la excepción 369 00:14:34,600 --> 00:14:35,480 te para el programa 370 00:14:35,480 --> 00:14:38,899 te para el programa pero te hace justo antes eso 371 00:14:38,899 --> 00:14:40,899 ¿vale? en realidad te hace dos cosas 372 00:14:40,899 --> 00:14:43,120 te hace esto, aunque no lo veamos 373 00:14:43,120 --> 00:14:44,360 para sacar líneas rojas 374 00:14:44,360 --> 00:14:46,399 y luego te para el programa 375 00:14:46,399 --> 00:14:47,480 ¿vale? 376 00:14:48,460 --> 00:14:50,639 entonces este es uno de los métodos 377 00:14:50,639 --> 00:14:51,539 que tiene este objeto 378 00:14:51,539 --> 00:14:54,059 en tiempo de desarrollo 379 00:14:54,059 --> 00:14:56,419 cuando estamos desarrollando 380 00:14:56,419 --> 00:14:57,879 siempre ponemos esto 381 00:14:57,879 --> 00:15:02,580 Porque es que la información de por qué ha salido la excepción me viene aquí. 382 00:15:03,740 --> 00:15:05,820 A ver, la puedo dar yo con el system out. 383 00:15:06,440 --> 00:15:10,320 Pero es que aquí me viene toda la traza detallada, en qué línea de código, me viene todo. 384 00:15:10,440 --> 00:15:11,500 Entonces, siempre pongo esto. 385 00:15:12,299 --> 00:15:20,080 Cuando ya he pasado al tiempo, ya la aplicación ya está para el mercado y ya la voy a pasar a producción, quito todo esto. 386 00:15:20,740 --> 00:15:25,639 Porque en el caso de que falle, yo no quiero que al usuario se le muestre una de las líneas tan feas. 387 00:15:25,639 --> 00:15:28,340 quiero ya que se le muestre mi mensajito bonito 388 00:15:28,340 --> 00:15:30,080 o mi pantalla 389 00:15:30,080 --> 00:15:31,360 de error o lo que sea 390 00:15:31,360 --> 00:15:33,700 pero en tiempo de desarrollo esto es fundamental 391 00:15:33,700 --> 00:15:35,539 porque yo sí que quiero ver todo ese chorizo 392 00:15:35,539 --> 00:15:37,600 en esta línea, en esta no sé qué 393 00:15:37,600 --> 00:15:40,220 entonces si ejecutamos este código 394 00:15:40,220 --> 00:15:41,559 metiendo mal el numerito 395 00:15:41,559 --> 00:15:46,779 introduzca número 396 00:15:46,779 --> 00:15:48,039 8,6 397 00:15:48,039 --> 00:15:50,440 pues me hace 398 00:15:50,440 --> 00:15:52,759 este es el 399 00:15:52,759 --> 00:15:54,220 print extract race, es este 400 00:15:54,220 --> 00:15:55,860 y luego 401 00:15:55,860 --> 00:15:58,700 como él lo hace multilo, este rollo 402 00:15:58,700 --> 00:16:00,919 Pues has metido mal el número 403 00:16:00,919 --> 00:16:02,259 O sea, es que lo has metido 404 00:16:02,259 --> 00:16:04,379 El system out, como veis, lo ha colado 405 00:16:04,379 --> 00:16:06,200 Detalle curioso 406 00:16:06,200 --> 00:16:07,539 El system out 407 00:16:07,539 --> 00:16:10,960 Me lo ha colado entre medias de una de estas 408 00:16:10,960 --> 00:16:12,799 Porque ahí hace un multi-hilo 409 00:16:12,799 --> 00:16:15,500 Vale, pero eso ya es un tema suyo 410 00:16:15,500 --> 00:16:22,340 Lo puedes llamar 411 00:16:22,340 --> 00:16:23,559 Como te dé la gana 412 00:16:23,559 --> 00:16:33,419 es como el nombre del parámetro 413 00:16:33,419 --> 00:16:34,299 de un método 414 00:16:34,299 --> 00:16:35,980 tú el nombre del parámetro de un método 415 00:16:35,980 --> 00:16:51,350 bueno pues tú lo llamas 416 00:16:51,350 --> 00:16:53,129 como quieras porque es el parámetro 417 00:16:53,129 --> 00:16:53,750 de un método 418 00:16:53,750 --> 00:16:55,690 entonces tú lo llamas como te salga 419 00:16:55,690 --> 00:16:57,690 de cualquier parte de tu cuerpo 420 00:16:57,690 --> 00:16:59,889 vale 421 00:16:59,889 --> 00:17:01,009 entonces 422 00:17:01,009 --> 00:17:03,809 ¿a qué viene 423 00:17:03,809 --> 00:17:05,769 entonces? ¿por qué decía yo que os estaba 424 00:17:05,769 --> 00:17:07,609 mintiendo del todo cuando si haces 425 00:17:07,609 --> 00:17:09,609 un catch con todos 426 00:17:09,609 --> 00:17:11,609 en la misma no puedes 427 00:17:11,609 --> 00:17:13,569 depurar? porque de X puedes 428 00:17:13,569 --> 00:17:15,549 sacar la clase a la que pertenece, no tenemos 429 00:17:15,549 --> 00:17:17,630 un instance of que te dice a qué clase 430 00:17:17,630 --> 00:17:19,549 pertenece un objeto, pues con X 431 00:17:19,549 --> 00:17:21,529 uno podría hacer lo que le diera la gana, que esto es 432 00:17:21,529 --> 00:17:22,190 muy retorcido 433 00:17:22,190 --> 00:17:25,670 Si es instance of 434 00:17:25,670 --> 00:17:27,109 No sé qué 435 00:17:27,109 --> 00:17:33,250 Pues entonces sé que la excepción lanzada fue esta 436 00:17:33,250 --> 00:17:34,829 Pero a ver, es de tontos 437 00:17:34,829 --> 00:17:36,789 Hacer un catch con todas en la misma 438 00:17:36,789 --> 00:17:39,369 Y luego ponerte ahí un if el save con instance of 439 00:17:39,369 --> 00:17:40,630 Para eso te haces 440 00:17:40,630 --> 00:17:43,089 Varios catch separados y mucho más bonito 441 00:17:43,089 --> 00:17:44,269 ¿Vale? 442 00:17:44,269 --> 00:17:45,150 No entendí eso 443 00:17:45,150 --> 00:17:47,910 Es como lo de arriba pero como más 444 00:17:47,910 --> 00:17:50,210 Claro, que tú aquí hemos dicho que podrías poner 445 00:17:50,210 --> 00:17:51,710 Todas las excepciones juntitas 446 00:17:51,710 --> 00:17:52,890 Sí 447 00:17:52,890 --> 00:17:58,650 Claro, entonces si las pones todas juntitas 448 00:17:58,650 --> 00:18:07,809 Sí, bueno 449 00:18:07,809 --> 00:18:11,210 Claro, sí 450 00:18:11,210 --> 00:18:12,970 Podrías, pero 451 00:18:12,970 --> 00:18:18,369 Pero a lo mejor es que tú solamente quieres capturar estas 452 00:18:18,369 --> 00:18:20,170 Y si pones la super clase 453 00:18:20,170 --> 00:18:22,009 Es que cualquier cosa entre en ese catch 454 00:18:22,009 --> 00:18:23,869 Entonces es peligroso 455 00:18:23,869 --> 00:18:25,349 Porque se va a resolver algo 456 00:18:25,349 --> 00:18:27,450 que tú no contemplas, que tú no contemplabas, 457 00:18:27,509 --> 00:18:28,690 se va a resolver de la misma manera que el otro. 458 00:18:32,130 --> 00:18:33,430 Ya, pero no va a parar el programa, 459 00:18:33,569 --> 00:18:35,130 por ejemplo, a lo mejor tú querías que parara. 460 00:18:35,269 --> 00:18:37,589 Entonces, depende. Como de costumbre, depende de la situación. 461 00:18:37,589 --> 00:18:39,049 Luego, dentro del Instasoft, 462 00:18:39,210 --> 00:18:41,490 pones si es esa excepción para mi programa. 463 00:18:42,210 --> 00:18:43,410 Sí, pero... 464 00:18:43,410 --> 00:18:45,089 Sí, sí, siempre hay salidas para todo. 465 00:18:45,230 --> 00:18:47,490 Pero bueno, que lo de poner la superclase 466 00:18:47,490 --> 00:18:48,589 tiene su... 467 00:18:48,589 --> 00:18:55,859 No lo digo muy bien. 468 00:18:56,140 --> 00:18:57,000 Venga, vale. 469 00:18:57,000 --> 00:18:59,240 hala ya está 470 00:18:59,240 --> 00:19:01,900 a ver 471 00:19:01,900 --> 00:19:03,880 no 472 00:19:03,880 --> 00:19:06,140 la curiosidad todo hay que dejarlo 473 00:19:06,140 --> 00:19:06,920 fluir 474 00:19:06,920 --> 00:19:09,880 no hay que cercenar 475 00:19:09,880 --> 00:19:11,680 no hay que cortarse ningún impulso 476 00:19:11,680 --> 00:19:13,759 bueno 477 00:19:13,759 --> 00:19:15,299 pues 478 00:19:15,299 --> 00:19:17,980 vale 479 00:19:17,980 --> 00:19:19,660 el ex pues tiene más cositas 480 00:19:19,660 --> 00:19:21,859 más métodos más chorraditas pero bueno 481 00:19:21,859 --> 00:19:23,039 esto es lo único importante 482 00:19:23,039 --> 00:19:24,599 luego 483 00:19:24,599 --> 00:19:28,079 Ya casi acabamos 484 00:19:28,079 --> 00:19:29,440 Él para que si lo veis por ahí 485 00:19:29,440 --> 00:19:31,180 Diga, hijo, es que no nos cuentan 486 00:19:31,180 --> 00:19:33,180 Pues el try-catch 487 00:19:33,180 --> 00:19:35,480 Tiene una tercera cláusula 488 00:19:35,480 --> 00:19:37,000 Que se le puede poner opcional 489 00:19:37,000 --> 00:19:39,119 El catch no es opcional, claro 490 00:19:39,119 --> 00:19:39,940 Que es el finally 491 00:19:39,940 --> 00:19:43,180 Que es, claro 492 00:19:43,180 --> 00:19:45,799 El finally es, me da igual que haya sido por el try 493 00:19:45,799 --> 00:19:47,259 Me da igual que haya sido por el catch 494 00:19:47,259 --> 00:19:49,500 Haya sido por el camino 495 00:19:49,500 --> 00:19:51,500 Que haya sido, haz eso de ahí 496 00:19:51,500 --> 00:19:53,059 Que puede ser un mensaje 497 00:19:53,059 --> 00:19:55,259 un cerrar flujos cuando esto se trata de abrir 498 00:19:55,259 --> 00:19:57,119 estás haciendo aficheros 499 00:19:57,119 --> 00:19:59,059 un cerrar la conexión de bases de datos 500 00:19:59,059 --> 00:20:00,839 lo que sea, entonces esto 501 00:20:00,839 --> 00:20:02,779 se ejecuta 502 00:20:02,779 --> 00:20:03,859 siempre 503 00:20:03,859 --> 00:20:06,220 y es opcional 504 00:20:06,220 --> 00:20:22,539 vale, entonces ya lo último 505 00:20:22,539 --> 00:20:23,460 el truco del vago 506 00:20:23,460 --> 00:20:25,720 el truco del vago 507 00:20:25,720 --> 00:20:40,380 vale 508 00:20:40,380 --> 00:20:42,480 tú quieres que tu programa no pare 509 00:20:42,480 --> 00:20:44,339 por nada del mundo, tienes aquí 510 00:20:44,339 --> 00:20:46,339 un código muy largo que hace un montón de 511 00:20:46,339 --> 00:20:48,400 cosas, lo que sea 512 00:20:48,400 --> 00:21:03,160 que no es el caso 513 00:21:03,160 --> 00:21:05,220 porque este código no hace nada y es una chorrada 514 00:21:05,220 --> 00:21:07,420 pero bueno, imaginaos 515 00:21:07,420 --> 00:21:08,220 que tenemos aquí 516 00:21:08,220 --> 00:21:10,559 un montonazo de código 517 00:21:10,559 --> 00:21:16,329 mucho código 518 00:21:16,329 --> 00:21:16,930 hay a mogollón 519 00:21:16,930 --> 00:21:19,789 y por nada del mundo queremos que este programa 520 00:21:19,789 --> 00:21:21,309 se detenga, pase lo que pase 521 00:21:21,309 --> 00:21:22,710 entonces 522 00:21:22,710 --> 00:21:24,910 yo tendría que poner ahí 523 00:21:24,910 --> 00:21:27,910 todas las que contemplo 524 00:21:27,910 --> 00:21:30,049 pero siempre puede haber alguna que no se me ocurra 525 00:21:30,049 --> 00:21:30,910 o que no sepa 526 00:21:30,910 --> 00:21:33,970 Pues pones la superclase 527 00:21:33,970 --> 00:21:37,109 Porque todas las excepciones 528 00:21:37,109 --> 00:21:38,809 Todas heredan de 529 00:21:38,809 --> 00:21:39,829 Exception 530 00:21:39,829 --> 00:21:41,849 Todas heredan de Exception 531 00:21:41,849 --> 00:21:43,289 Exception es la superclase 532 00:21:43,289 --> 00:21:44,650 Y todas 533 00:21:44,650 --> 00:21:46,630 Arraying desbono, Exception 534 00:21:46,630 --> 00:21:48,630 Todas heredan de Exception 535 00:21:48,630 --> 00:21:51,450 Con lo cual, sí, claro, ya está 536 00:21:51,450 --> 00:21:52,130 Si eres un vago 537 00:21:52,130 --> 00:21:55,849 Entonces, da igual lo que pase por aquí 538 00:21:55,849 --> 00:21:57,789 Me da lo mismo la excepción que salga 539 00:21:57,789 --> 00:21:59,529 Cuando él se vaya al catch 540 00:21:59,529 --> 00:22:01,289 va a decir, uy es de tipo exception 541 00:22:01,289 --> 00:22:03,190 claro, todas son de tipo exception, ¿cómo no va a ser? 542 00:22:03,329 --> 00:22:04,529 entonces va a entrar ahí 543 00:22:04,529 --> 00:22:09,490 la traza era x.traction 544 00:22:09,490 --> 00:22:11,470 print extract trace 545 00:22:11,470 --> 00:22:18,319 entonces pues sí 546 00:22:18,319 --> 00:22:19,819 no hemos parado el programa 547 00:22:19,819 --> 00:22:20,960 por nada del mundo 548 00:22:20,960 --> 00:22:25,789 pero estamos capturando todas las excepciones 549 00:22:25,789 --> 00:22:27,970 por igual, aunque sean excepciones muy distintas 550 00:22:27,970 --> 00:22:29,109 a lo mejor hay excepciones 551 00:22:29,109 --> 00:22:31,250 que sí que querríamos que pararan el código 552 00:22:31,250 --> 00:22:33,349 bueno, pues ya está 553 00:22:33,349 --> 00:22:35,089 entonces gracias a la herencia 554 00:22:35,089 --> 00:22:37,670 pues siempre uno puede recurrir a esto 555 00:22:37,670 --> 00:22:39,549 cuando no quiere escribir tantos multicats 556 00:22:39,549 --> 00:22:40,829 pues si pone esto, lo tiene 557 00:22:40,829 --> 00:22:43,410 pero bueno, es feo 558 00:22:43,410 --> 00:22:45,309 pero a ver, lo feo y lo bonito 559 00:22:45,309 --> 00:22:48,369 va a depender de los procedimientos 560 00:22:48,369 --> 00:22:49,750 en donde vosotros 561 00:22:49,750 --> 00:22:51,130 estéis integrados a trabajar 562 00:22:51,130 --> 00:22:53,710 es como lo del retún que me preguntabas antes 563 00:22:53,710 --> 00:22:55,190 que esto es donde tú 564 00:22:55,190 --> 00:22:58,049 vayas, haz lo que hagan 565 00:22:58,049 --> 00:23:00,529 efectivamente 566 00:23:00,529 --> 00:23:02,009 hay principios 567 00:23:02,009 --> 00:23:03,069 más o menos básicos 568 00:23:03,069 --> 00:23:05,250 que es, uno básico 569 00:23:05,250 --> 00:23:07,430 lógicamente es que los códigos sean estructurados 570 00:23:07,430 --> 00:23:09,049 y un código estructurado 571 00:23:09,049 --> 00:23:11,130 efectivamente evita la multiplicidad de 572 00:23:11,130 --> 00:23:12,809 return y evita los break 573 00:23:12,809 --> 00:23:14,569 y así es más estructurado, porque 574 00:23:14,569 --> 00:23:17,309 estructurado significa que no tengas salidas por mil sitios 575 00:23:17,309 --> 00:23:19,170 entonces eso se desestructura y es un 576 00:23:19,170 --> 00:23:21,150 cachondeo, estructurado es que el 577 00:23:21,150 --> 00:23:23,329 camino esté muy definido y que el punto de salida 578 00:23:23,329 --> 00:23:25,109 y el punto de entrada esté lo más 579 00:23:25,109 --> 00:23:26,569 unificado posible 580 00:23:26,569 --> 00:23:29,269 entonces eso efectivamente evita los break y muchos 581 00:23:29,269 --> 00:23:30,869 return, pero 582 00:23:30,869 --> 00:23:32,710 esto es un mundo abierto 583 00:23:32,710 --> 00:23:35,509 Hay muchas maneras de programar 584 00:23:35,509 --> 00:23:37,130 Muchos procedimientos, muchas cosas 585 00:23:37,130 --> 00:23:39,529 Lo importante es que vosotros 586 00:23:39,529 --> 00:23:41,609 Tengáis la sensación de que controláis todo 587 00:23:41,609 --> 00:23:43,109 De que sabéis de qué va la cosa 588 00:23:43,109 --> 00:23:44,809 Y que sepáis adaptaros 589 00:23:44,809 --> 00:23:46,170 Y ya está 590 00:23:46,170 --> 00:23:48,890 Bueno, poco a poco 591 00:23:48,890 --> 00:23:50,769 Que estamos en marzo, ya pronto 592 00:23:50,769 --> 00:23:53,470 Así que, menos mal que tenemos 593 00:23:53,470 --> 00:23:55,450 La semana santa en la que vais a estudiar mucho 594 00:23:55,450 --> 00:23:59,230 Ya, queda todo segundo 595 00:23:59,230 --> 00:24:00,309 Pero 596 00:24:00,309 --> 00:24:03,670 pero segundo es muy corto 597 00:24:03,670 --> 00:24:05,190 pero bueno, tenéis todo el verano 598 00:24:05,190 --> 00:24:06,809 y toda la semana se va a estudiar 599 00:24:06,809 --> 00:24:09,190 bueno 600 00:24:09,190 --> 00:24:11,809 a ver, aquí sí que vamos a descansar 601 00:24:11,809 --> 00:24:13,289 porque lo otro 602 00:24:13,289 --> 00:24:15,450 de sesión es que nos falta, que lo hacemos en la hora 603 00:24:15,450 --> 00:24:16,730 que viene sin falta 604 00:24:16,730 --> 00:24:19,029 no, lo del final no, si ya lo hemos dado 605 00:24:19,029 --> 00:24:19,730 terminado