1 00:00:00,000 --> 00:00:02,600 Venga, ya está. Estamos grabando. 2 00:00:02,779 --> 00:00:04,139 Uy, perdona, pero... 3 00:00:04,139 --> 00:00:07,700 Vale, bueno, pues entonces, 4 00:00:07,879 --> 00:00:10,960 un vistazo muy por encima de las clases de este ejercicio. 5 00:00:15,160 --> 00:00:16,699 Me liaba aquí a... 6 00:00:16,699 --> 00:00:19,000 Me quedaba sola aquí dando... 7 00:00:22,920 --> 00:00:24,399 Vale, pues a ver. 8 00:00:25,219 --> 00:00:26,820 Pues hicisteis una clase alumno. 9 00:00:27,559 --> 00:00:29,699 Esta es una versión un poquito más tuneada, 10 00:00:29,699 --> 00:00:33,619 Pero bueno, es ver por encima la idea de excepciones que vimos el otro día. 11 00:00:34,420 --> 00:00:44,460 Vale, pues habéis hecho esencialmente un método crear alumno, al cual se le pasan los datos del alumno y lo crea y lo devuelve con ahorro de retorno. 12 00:00:44,939 --> 00:00:54,020 Luego, primera cosa, este método crear alumno, que se le pasan los datos de un objeto alumno, lo instancia y lo devuelve, 13 00:00:54,020 --> 00:00:57,299 por definición es un método estático 14 00:00:57,299 --> 00:00:59,399 porque no depende de propiedades 15 00:00:59,399 --> 00:01:00,799 de ningún objeto en concreto 16 00:01:00,799 --> 00:01:02,939 de hecho sirve para crear uno nuevo 17 00:01:02,939 --> 00:01:05,180 ¿no? con lo cual 18 00:01:05,180 --> 00:01:06,280 uno le pone estático 19 00:01:06,280 --> 00:01:08,620 y luego pues desde su main 20 00:01:08,620 --> 00:01:10,659 ¿cómo crea uno a un alumno? 21 00:01:11,319 --> 00:01:12,980 pues desde su main crea uno 22 00:01:12,980 --> 00:01:15,099 a un alumno directamente con el nombre 23 00:01:15,099 --> 00:01:16,540 de la clase crear alumno 24 00:01:16,540 --> 00:01:18,120 los datos y lo crea 25 00:01:18,120 --> 00:01:19,700 luego 26 00:01:19,700 --> 00:01:23,099 esto en realidad este crear alumno 27 00:01:23,099 --> 00:01:25,640 es igual que un constructor 28 00:01:25,640 --> 00:01:28,140 es lo mismo, hace lo mismo que un constructor 29 00:01:28,140 --> 00:01:29,980 lo que pasa es que lo hace específicamente 30 00:01:29,980 --> 00:01:31,239 es lo mismo 31 00:01:31,239 --> 00:01:33,459 entonces, ¿qué sentido tiene? 32 00:01:33,579 --> 00:01:35,079 pues a lo mejor aquí ahora mismo 33 00:01:35,079 --> 00:01:37,319 poquito, aunque alguno tenga 34 00:01:37,319 --> 00:01:39,540 por el tema de la excepción de ahora 35 00:01:39,540 --> 00:01:42,099 poquito, pero es una forma 36 00:01:42,099 --> 00:01:44,280 de diseñar clases muy habitual 37 00:01:44,280 --> 00:01:45,739 entonces 38 00:01:45,739 --> 00:01:47,799 a veces lo que se hace es 39 00:01:47,799 --> 00:01:48,959 por lo que se opta es 40 00:01:48,959 --> 00:01:50,719 el constructor 41 00:01:50,719 --> 00:01:53,060 yo lo hago privado 42 00:01:53,060 --> 00:01:55,640 ¿Veis? Yo aquí en mi clase alumno 43 00:01:55,640 --> 00:01:57,459 al constructor lo he hecho 44 00:01:57,459 --> 00:01:58,019 privado 45 00:01:58,019 --> 00:02:01,200 Claro, y si lo he hecho privado 46 00:02:01,200 --> 00:02:02,959 significa que no dejo a nadie 47 00:02:02,959 --> 00:02:05,379 que instancie objetos por su cuenta 48 00:02:05,379 --> 00:02:07,159 Nadie va a poder hacer un new, nadie 49 00:02:07,159 --> 00:02:08,539 porque está privado, nadie 50 00:02:08,539 --> 00:02:11,120 Entonces, ¿cómo se van a crear 51 00:02:11,120 --> 00:02:12,240 los objetos alumno? 52 00:02:14,639 --> 00:02:17,319 Hola, pues los objetos alumno 53 00:02:17,319 --> 00:02:19,039 se van a crear 54 00:02:19,039 --> 00:02:21,139 porque yo ofrezco un método alternativo 55 00:02:21,139 --> 00:02:21,699 como este 56 00:02:21,699 --> 00:02:33,300 Y en este método alternativo, además de instanciar el propio objeto con new, puedo hacer más cosas, como verificar que se cumplen ciertas condiciones, etc. 57 00:02:35,659 --> 00:02:43,280 Entonces, de nuevo otra idea más, pues que nos va apareciendo de diseño sobre la marcha, según vamos haciendo ejercicios. 58 00:02:43,280 --> 00:02:54,860 Aunque este módulo sea específicamente de aprender las técnicas básicas de programación, es bueno que nos vayan quedando poquito a poco nociones de diseño. 59 00:02:54,860 --> 00:03:04,919 Pues bueno, esta es una muy habitual. Yo prohíbo el constructor. Al prohibirlo con el privado, automáticamente nadie va a poder instanciar. 60 00:03:05,819 --> 00:03:10,939 Entonces, ¿qué hace la gente cuando tenga que crear alumnos? Lo hará a través del método que yo ofrezco. 61 00:03:10,939 --> 00:03:14,240 y este método ya dentro hace comprobaciones 62 00:03:14,240 --> 00:03:15,599 cosas que yo quiero que pasen 63 00:03:15,599 --> 00:03:18,319 luego es una forma de dirigir 64 00:03:18,319 --> 00:03:19,520 la creación de objetos 65 00:03:19,520 --> 00:03:22,000 dirijo la creación de objetos 66 00:03:22,000 --> 00:03:24,379 ofreciendo un método que hace comprobaciones 67 00:03:24,379 --> 00:03:25,740 hace cosas y él 68 00:03:25,740 --> 00:03:28,120 es el único que tiene permiso de llamar 69 00:03:28,120 --> 00:03:29,759 al constructor, el único 70 00:03:29,759 --> 00:03:30,699 ¿vale? 71 00:03:31,819 --> 00:03:33,280 bueno pues en este caso 72 00:03:33,280 --> 00:03:36,280 ¿por qué lo hemos planteado así este ejercicio? 73 00:03:36,379 --> 00:03:37,340 lo hemos planteado así 74 00:03:37,340 --> 00:03:40,479 porque a la aplicación 75 00:03:40,479 --> 00:03:42,439 le interesa que solo se puedan 76 00:03:42,439 --> 00:03:43,740 crear alumnos, solo 77 00:03:43,740 --> 00:03:46,020 si el año no es negativo. 78 00:03:47,500 --> 00:03:48,060 Entonces, 79 00:03:48,300 --> 00:03:49,539 prohibimos el constructor 80 00:03:49,539 --> 00:03:51,860 y 81 00:03:51,860 --> 00:03:54,680 nos hacemos un método que verifique 82 00:03:54,680 --> 00:03:56,020 si el año es negativo. 83 00:03:56,780 --> 00:03:58,620 Si lo es, ni instancia 84 00:03:58,620 --> 00:03:59,580 nada, ni hace nada. 85 00:04:00,740 --> 00:04:01,639 Lanza la excepción. 86 00:04:02,639 --> 00:04:04,659 Y si no lo es, ya devuelve el alumno. 87 00:04:05,199 --> 00:04:06,659 ¿Vale? Luego es una forma alternativa 88 00:04:06,659 --> 00:04:07,819 de crear el objeto alumno 89 00:04:07,819 --> 00:04:09,740 a través de un método estático. 90 00:04:10,479 --> 00:04:11,039 ¿Vale? 91 00:04:12,159 --> 00:04:14,500 Y así no ensuciamos el constructor 92 00:04:14,500 --> 00:04:16,420 aquí haciendo que sea el constructor 93 00:04:16,420 --> 00:04:18,240 el que lance una excepción, que eso es feo. 94 00:04:18,899 --> 00:04:20,319 A los constructores, cuando a menos 95 00:04:20,319 --> 00:04:21,500 mierda se les meta mejor. 96 00:04:22,100 --> 00:04:24,300 Los constructores están exclusivamente para 97 00:04:24,300 --> 00:04:26,660 dados los valores de unas propiedades 98 00:04:26,660 --> 00:04:27,839 crear un objeto. 99 00:04:28,180 --> 00:04:30,079 Y no les metemos ahí morraya y nada. 100 00:04:31,100 --> 00:04:32,779 Si necesitamos meter morraya 101 00:04:32,779 --> 00:04:34,339 para hacer comprobaciones, 102 00:04:34,480 --> 00:04:36,439 para poner mensajitos de si ha creado un objeto, 103 00:04:36,920 --> 00:04:38,519 para verificar si el usuario 104 00:04:38,519 --> 00:04:40,360 que está llamando al constructor 105 00:04:40,360 --> 00:04:41,540 tiene permisos o no 106 00:04:41,540 --> 00:04:44,279 si necesitamos meter todo ese tipo de comprobaciones 107 00:04:44,279 --> 00:04:46,720 o cosas en el constructor para crear un objeto 108 00:04:46,720 --> 00:04:48,959 prohibimos el constructor 109 00:04:48,959 --> 00:04:50,680 y hacemos un método 110 00:04:50,680 --> 00:04:52,779 adicional, que haga las comprobaciones que sean 111 00:04:52,779 --> 00:04:54,519 verifique lo que sea y sea 112 00:04:54,519 --> 00:04:56,639 él el que ya una vez 113 00:04:56,639 --> 00:04:58,360 verificado que todo está correcto 114 00:04:58,360 --> 00:04:59,660 llame al constructor 115 00:04:59,660 --> 00:05:01,279 y devuelva el objeto 116 00:05:01,279 --> 00:05:03,959 es una forma de diseño habitual 117 00:05:03,959 --> 00:05:06,560 bueno pues en este caso lo hemos usado 118 00:05:06,560 --> 00:05:08,519 para esto, simplemente para que en lugar de que 119 00:05:08,519 --> 00:05:10,339 sea el constructor el que lance el throws 120 00:05:10,339 --> 00:05:12,399 excepción, que es muy feo, pues 121 00:05:12,399 --> 00:05:14,420 le lancé crear alumno. Y ya está. Si el año 122 00:05:14,420 --> 00:05:16,139 es negativo, aquí el programa se para. 123 00:05:17,500 --> 00:05:18,500 Lanzo la excepción y 124 00:05:18,500 --> 00:05:20,259 listo. Y si no, el programa 125 00:05:20,259 --> 00:05:22,300 no se para, sino que me hace el retun, 126 00:05:22,699 --> 00:05:24,500 el método, perdón, no el programa, el método, 127 00:05:24,600 --> 00:05:25,600 me hace el retun y ya está. 128 00:05:26,319 --> 00:05:28,300 Y esto es lo que haríais en ese ejercicio, hacer 129 00:05:28,300 --> 00:05:29,500 un crear alumno que haga esto. 130 00:05:30,680 --> 00:05:31,600 Y luego ya 131 00:05:31,600 --> 00:05:34,379 el main, pues 132 00:05:34,379 --> 00:05:36,399 claro, llama al objeto, por ejemplo, aquí vamos 133 00:05:36,399 --> 00:05:37,819 a crear un array de cuatro alumnos. 134 00:05:38,519 --> 00:06:01,569 Pues en cada posición creamos un alumno y aquí efectivamente, si vamos a crear alumno, hay que pasar de todas las propiedades de crear alumno, que crear alumno yo tengo puesto porque, bueno, le añadí este de asignaturas y todo, año y curso, pues ya está en crear alumno. 135 00:06:01,569 --> 00:06:04,209 como le añadí un curso 136 00:06:04,209 --> 00:06:06,110 pues bueno, vamos a suponer 137 00:06:06,110 --> 00:06:08,029 que ala, curso 138 00:06:08,029 --> 00:06:09,310 primero, lo que sea 139 00:06:09,310 --> 00:06:11,970 para que no me dé 140 00:06:11,970 --> 00:06:16,050 y ahora 141 00:06:16,050 --> 00:06:17,750 como crear alumno puede que lance 142 00:06:17,750 --> 00:06:19,970 excepción, pues ya sabemos que entonces tenemos que 143 00:06:19,970 --> 00:06:21,230 meterlo en un try-catch 144 00:06:21,230 --> 00:06:24,009 para decir que hacemos en el caso de que 145 00:06:24,009 --> 00:06:25,970 no podamos crear el alumno 146 00:06:25,970 --> 00:06:28,170 en este caso, ¿por qué optamos? 147 00:06:29,509 --> 00:06:30,930 por decrementar 148 00:06:30,930 --> 00:06:32,550 la variable i 149 00:06:32,550 --> 00:06:35,670 para que el for insista en la i una y otra vez. 150 00:06:36,949 --> 00:06:37,389 ¿Vale? 151 00:06:38,730 --> 00:06:41,509 ¿Veis? O sea, este main, que es el que rellena a los alumnos, 152 00:06:42,370 --> 00:06:45,189 este main va a rellenar a mis cuatro alumnos. 153 00:06:46,029 --> 00:06:49,269 Intenta crear el alumno, que puede crearlo fenomenal. 154 00:06:49,910 --> 00:06:51,310 Ya está, pasa al siguiente i. 155 00:06:51,709 --> 00:06:54,529 Que no puede crearlo, como se habrá lanzado la excepción, 156 00:06:54,529 --> 00:06:58,170 sale el catch, me avisa y decrementa el i otra vez. 157 00:06:58,170 --> 00:07:01,069 y lo decrementa y así se está todo el rato 158 00:07:01,069 --> 00:07:02,550 intentando crear ese alumni 159 00:07:02,550 --> 00:07:05,029 que puedo crearlo, genial, paso al siguiente 160 00:07:05,029 --> 00:07:06,370 que no puedo crearlo 161 00:07:06,370 --> 00:07:08,230 dejo la i 162 00:07:08,230 --> 00:07:10,910 decrementada para volver 163 00:07:10,910 --> 00:07:12,829 a insistir en este, volver a insistir 164 00:07:12,829 --> 00:07:14,329 y este for se va a estar parado 165 00:07:14,329 --> 00:07:16,189 en la misma i se va a estar parado 166 00:07:16,189 --> 00:07:18,529 hasta que por fin esto no dé excepción 167 00:07:18,529 --> 00:07:20,850 luego sería una forma 168 00:07:20,850 --> 00:07:21,930 de rellenar este array 169 00:07:21,930 --> 00:07:26,060 y esto sería mucho mejor solución que la 170 00:07:26,060 --> 00:07:26,920 solución de 171 00:07:26,920 --> 00:07:29,480 que si en lugar de excepción 172 00:07:29,480 --> 00:07:31,040 ¿por qué otra solución podría ser? 173 00:07:31,100 --> 00:07:32,060 la que tengo aquí comentada 174 00:07:32,060 --> 00:07:35,079 si el año es negativo, no me crees el alumno 175 00:07:35,079 --> 00:07:36,980 return null y se acabó 176 00:07:36,980 --> 00:07:38,379 vale 177 00:07:38,379 --> 00:07:40,279 pero que feo 178 00:07:40,279 --> 00:07:42,620 porque si yo en lugar de lanzar excepción 179 00:07:42,620 --> 00:07:44,759 return null si el año es negativo y se acabó 180 00:07:44,759 --> 00:07:46,579 pues entonces aquí 181 00:07:46,579 --> 00:07:48,759 alumnos de i estará metiendo 182 00:07:48,759 --> 00:07:49,480 alumnos nulos 183 00:07:49,480 --> 00:07:51,399 y yo 184 00:07:51,399 --> 00:07:54,620 como programador de mi programa main 185 00:07:54,620 --> 00:07:56,459 pues no me estaré enterando 186 00:07:56,459 --> 00:07:58,579 de que esto puede ser que no esté funcionando 187 00:07:58,579 --> 00:08:00,439 no me estaré enterando porque no me está avisando 188 00:08:00,439 --> 00:08:02,480 cuidado que pueda lanzar excepción, podré estar 189 00:08:02,480 --> 00:08:03,240 metiendo ahí nulos 190 00:08:03,240 --> 00:08:06,759 entonces pues bueno, esto es mucho mejor 191 00:08:06,759 --> 00:08:08,560 hago que el método en lugar de 192 00:08:08,560 --> 00:08:10,899 devolver nulos, si no puede, me lance una excepción 193 00:08:10,899 --> 00:08:12,699 con lo cual 194 00:08:12,699 --> 00:08:13,860 al lanzarme una excepción 195 00:08:13,860 --> 00:08:16,879 si yo no meto el try catch 196 00:08:16,879 --> 00:08:19,019 si yo no meto, me va a decir 197 00:08:19,019 --> 00:08:20,839 si este try catch 198 00:08:20,839 --> 00:08:21,959 yo no lo pongo 199 00:08:21,959 --> 00:08:34,340 hola, si yo no lo pongo 200 00:08:34,340 --> 00:08:35,899 donde está alumno excepción 201 00:08:35,899 --> 00:08:39,419 aquí 202 00:08:39,419 --> 00:08:48,740 vale, si yo no lo pongo 203 00:08:48,740 --> 00:08:49,659 el try catch 204 00:08:49,659 --> 00:08:52,480 automáticamente aquí 205 00:08:52,480 --> 00:08:54,620 me llega el aviso de cuidado que el método 206 00:08:54,620 --> 00:08:56,539 crear alumno, cuidado, puede que te lance 207 00:08:56,539 --> 00:08:58,620 una excepción, genial, me facilita 208 00:08:58,620 --> 00:09:00,519 la tarea, no tengo yo aquí que 209 00:09:00,519 --> 00:09:02,500 buscar en la documentación a ver si puede que 210 00:09:02,500 --> 00:09:04,340 esto me dé nulo, si no me dé nulo, no 211 00:09:04,340 --> 00:09:06,500 es que directamente ya me está diciendo, cuidado que puede 212 00:09:06,500 --> 00:09:07,960 dar una excepción de año negativo 213 00:09:07,960 --> 00:09:10,100 pues ya está, ah vale, pues genial 214 00:09:10,100 --> 00:09:11,299 la capturo 215 00:09:11,299 --> 00:09:16,759 la capturo 216 00:09:16,759 --> 00:09:19,539 y en el caso de que se lance 217 00:09:19,539 --> 00:09:21,320 la excepción, alumnos de i 218 00:09:21,320 --> 00:09:23,519 se habrá quedado sin inicializar 219 00:09:23,519 --> 00:09:24,659 me avisa 220 00:09:24,659 --> 00:09:27,179 y decrementa i para que en la siguiente 221 00:09:27,179 --> 00:09:29,159 iteración volver a insistir otra vez 222 00:09:29,159 --> 00:09:30,940 y volver a insistir y volver a insistir 223 00:09:30,940 --> 00:09:31,960 y así 224 00:09:31,960 --> 00:09:35,360 pues esta es la idea de este ejercicio 225 00:09:35,360 --> 00:09:37,340 ver las diferentes formas de comunicarse 226 00:09:37,340 --> 00:09:39,299 entre mi entidad alumno y el programa principal 227 00:09:39,299 --> 00:09:41,340 en el caso de que ocurra 228 00:09:41,340 --> 00:09:43,360 algo que yo he identificado que no quiero 229 00:09:43,360 --> 00:09:44,919 que pase, que es un año negativo. 230 00:09:47,580 --> 00:09:49,139 Luego uno hace su aplicación, 231 00:09:49,500 --> 00:09:50,200 identifica 232 00:09:50,200 --> 00:09:52,720 qué cosas no quiero que pasen. 233 00:09:53,720 --> 00:09:54,779 Pues no quiero que pase 234 00:09:54,779 --> 00:09:57,080 que el login tenga más 235 00:09:57,080 --> 00:09:59,559 de 10 caracteres. 236 00:09:59,919 --> 00:10:01,019 No quiero que pase 237 00:10:01,019 --> 00:10:03,080 que haya un email 238 00:10:03,080 --> 00:10:04,940 sin un arroba. No quiero que pase 239 00:10:04,940 --> 00:10:07,179 no sé qué. Pues me hago excepciones 240 00:10:07,179 --> 00:10:07,980 para esos casos. 241 00:10:08,919 --> 00:10:11,200 Y luego en los métodos donde yo verifico 242 00:10:11,200 --> 00:10:13,000 eso, si eso pasa 243 00:10:13,000 --> 00:10:14,419 que no quiero que pase, hago el throw 244 00:10:14,419 --> 00:10:17,360 y ahora ya el que usa esas clases tiene los avisos 245 00:10:17,360 --> 00:10:18,820 cuidado que aquí te puede pasar esto 246 00:10:18,820 --> 00:10:20,080 ah vale, pues si me pasa hago esto 247 00:10:20,080 --> 00:10:22,500 cuidado que aquí te puede pasar esto, ah pues si me pasa hago esto 248 00:10:22,500 --> 00:10:25,320 es mejor forma de programar 249 00:10:25,320 --> 00:10:27,259 construyendo 250 00:10:27,259 --> 00:10:29,100 esas propias excepciones nuestras 251 00:10:29,100 --> 00:10:34,279 bueno, de todo el rollo 252 00:10:34,279 --> 00:10:35,139 este de excepciones 253 00:10:35,139 --> 00:10:38,440 alguna duda, problema, etc 254 00:10:38,440 --> 00:10:43,679 bueno, esto era 255 00:10:43,679 --> 00:10:45,840 y llamar al alumno con los parámetros 256 00:10:45,840 --> 00:10:46,679 que necesitaba. 257 00:10:48,360 --> 00:10:49,639 Pero vamos, este proyecto 258 00:10:49,639 --> 00:10:51,460 lo subiré también. Dime. 259 00:10:51,879 --> 00:10:53,480 ¿El print stack trace que hacía? 260 00:10:54,080 --> 00:10:55,399 El print stack trace 261 00:10:55,399 --> 00:10:57,559 demuestra toda la traza 262 00:10:57,559 --> 00:10:59,100 que le ha hecho llegar a ese error. 263 00:10:59,220 --> 00:11:01,340 Todas las líneas de código que le han hecho llegar a ese error. 264 00:11:07,220 --> 00:11:07,659 Recuerda 265 00:11:07,659 --> 00:11:08,960 que si no hay un try-catch, 266 00:11:09,379 --> 00:11:11,500 es decir, tú decides 267 00:11:11,500 --> 00:11:13,399 no tratarla. Si no pones el 268 00:11:13,399 --> 00:11:15,320 throws arriba sin más, entonces 269 00:11:15,320 --> 00:11:17,080 si aquí ocurriera una excepción, 270 00:11:17,679 --> 00:11:20,899 La máquina virtual llama a ella sin que tú lo veas 271 00:11:20,899 --> 00:11:23,200 al print extract trace y luego para el programa. 272 00:11:23,740 --> 00:11:25,100 Por eso cuando salta una excepción 273 00:11:25,100 --> 00:11:26,600 vemos también las líneas rojas. 274 00:11:27,059 --> 00:11:29,740 Porque la máquina virtual antes de parar el programa 275 00:11:29,740 --> 00:11:31,480 ha llamado a esto, aunque no lo veamos. 276 00:11:32,179 --> 00:11:33,399 Pero si tú haces un try-catch, 277 00:11:34,159 --> 00:11:35,919 entonces ya el que has tomado el control eres tú. 278 00:11:36,279 --> 00:11:37,740 Entonces si la excepción se lanza, 279 00:11:38,059 --> 00:11:39,500 se hace lo que hay aquí. 280 00:11:40,080 --> 00:11:41,299 Si no hay print extract trace, 281 00:11:41,419 --> 00:11:42,639 no vas a ver líneas rojas. 282 00:11:43,120 --> 00:11:44,620 Porque esas líneas rojas se muestran 283 00:11:44,620 --> 00:11:46,299 cuando hay un print extract trace. 284 00:11:46,299 --> 00:11:50,460 como son de mucha ayuda 285 00:11:50,460 --> 00:11:51,720 para saber que ha pasado 286 00:11:51,720 --> 00:11:53,580 cuando estás desarrollando las ponemos siempre 287 00:11:53,580 --> 00:11:54,539 cuando estamos desarrollando 288 00:11:54,539 --> 00:11:56,759 cuando el programa está bien pues ya no, las quitamos 289 00:11:56,759 --> 00:11:58,000 ¿vale? 290 00:12:02,000 --> 00:12:03,100 más dudicas 291 00:12:03,100 --> 00:12:05,240 de programa, uy de programación 292 00:12:05,240 --> 00:12:06,519 sí, de programación, efectivamente 293 00:12:06,519 --> 00:12:09,840 más dudas 294 00:12:09,840 --> 00:12:11,539 de excepciones 295 00:12:11,539 --> 00:12:17,320 vale, ves que es un 296 00:12:17,320 --> 00:12:17,879 recurso 297 00:12:17,879 --> 00:12:20,259 para un recurso 298 00:12:20,259 --> 00:12:21,779 para hacer nuestros programas 299 00:12:21,779 --> 00:12:24,080 pues un poquito más robustos 300 00:12:24,080 --> 00:12:25,879 que no se paren las primeras de cambio 301 00:12:25,879 --> 00:12:27,659 que sean más amigables 302 00:12:27,659 --> 00:12:30,179 permitirles salidas 303 00:12:30,179 --> 00:12:32,539 cuando pasan cosas raras que no nos gustan 304 00:12:32,539 --> 00:12:34,220 darle nombre a esas cosas raras 305 00:12:34,220 --> 00:12:35,740 ¿Compensa dedicarse a hacer secciones 306 00:12:35,740 --> 00:12:37,299 cuando puedes hacer un programa? 307 00:12:37,899 --> 00:12:40,080 Depende de la aplicación, depende de con que 308 00:12:40,080 --> 00:12:41,639 esté trabajando, depende 309 00:12:41,639 --> 00:12:44,159 la respuesta es fácil pero es que es real 310 00:12:44,159 --> 00:12:44,960 pues depende 311 00:12:44,960 --> 00:12:48,120 del tamaño de la aplicación 312 00:12:48,120 --> 00:12:49,340 de muchas cosas 313 00:12:49,340 --> 00:12:56,159 claro, pero es que en este caso 314 00:12:56,159 --> 00:12:57,299 realmente es que es así 315 00:12:57,299 --> 00:12:59,659 claro 316 00:12:59,659 --> 00:13:00,899 pero a ver 317 00:13:00,899 --> 00:13:04,159 ¿en qué casos no depende? 318 00:13:04,279 --> 00:13:06,379 pues está clarísimo, hay que estar callado 319 00:13:06,379 --> 00:13:08,259 y prestándome atención absoluta 320 00:13:08,259 --> 00:13:09,480 en clase, sí 321 00:13:09,480 --> 00:13:11,179 eso no depende, por ejemplo 322 00:13:11,179 --> 00:13:12,600 vale 323 00:13:12,600 --> 00:13:15,740 ¿Se come en clase? 324 00:13:16,240 --> 00:13:18,480 No, hay cosas que tienen respuesta inmediata 325 00:13:18,480 --> 00:13:19,259 No hay, depende 326 00:13:19,259 --> 00:13:23,919 Bueno, el jueves pasado, pero bueno 327 00:13:23,919 --> 00:13:27,980 Cuatro días, exactamente 328 00:13:27,980 --> 00:13:28,740 O cinco 329 00:13:28,740 --> 00:13:30,019 Mentira 330 00:13:30,019 --> 00:13:33,919 Bueno, vale, pues sí 331 00:13:33,919 --> 00:13:36,019 ¿Eh? 332 00:13:36,220 --> 00:13:36,899 ¿Pero cuándo es el día? 333 00:13:36,899 --> 00:13:37,820 ¿Cuándo es el día? 334 00:13:38,340 --> 00:13:38,960 ¿Cómo chiques? 335 00:13:39,919 --> 00:13:42,080 Pues los chiques, a ver, si vais a comer 336 00:13:42,080 --> 00:13:44,860 prefiero que comáis comida, no chicles 337 00:13:44,860 --> 00:13:55,059 hombre, para tu salud 338 00:13:55,059 --> 00:13:56,860 va a ser mucho mejor que te metas 339 00:13:56,860 --> 00:13:58,279 un buen chuletón con patatas 340 00:13:58,279 --> 00:13:59,620 que un chicle ajeroso 341 00:13:59,620 --> 00:14:02,639 una hamburguesa 342 00:14:02,639 --> 00:14:03,100 también 343 00:14:03,100 --> 00:14:06,879 pero tiene que haber para todos, no vale solo para ti 344 00:14:06,879 --> 00:14:12,480 Con cebolla 345 00:14:12,480 --> 00:14:14,240 La cebolla siempre 346 00:14:14,240 --> 00:14:15,480 Bueno, venga, a ver 347 00:14:15,480 --> 00:14:20,559 Respondiendo de otra manera a la pregunta 348 00:14:20,559 --> 00:14:22,559 Pues hombre, si uno ve 349 00:14:22,559 --> 00:14:24,799 Un proyecto 350 00:14:24,799 --> 00:14:26,120 Profesional 351 00:14:26,120 --> 00:14:28,419 Con todos sus paquetes 352 00:14:28,419 --> 00:14:30,500 Va a haber los paquetes de entidad 353 00:14:30,500 --> 00:14:32,139 El de controlador, el de no sé qué 354 00:14:32,139 --> 00:14:34,139 Y va a haber casi seguro, sí o sí 355 00:14:34,139 --> 00:14:35,600 Un paquete que sea excepciones 356 00:14:35,600 --> 00:14:37,980 que son las excepciones que uno se ha creado 357 00:14:37,980 --> 00:14:39,679 es lo habitual 358 00:14:39,679 --> 00:14:41,600 con lo cual es una práctica habitual 359 00:14:41,600 --> 00:14:43,679 crear tus propias excepciones, salvo en aplicaciones 360 00:14:43,679 --> 00:14:45,700 pequeñas, casi siempre vas a encontrar 361 00:14:45,700 --> 00:14:47,320 el paquete que sea excepciones 362 00:14:47,320 --> 00:14:49,559 y ahí van a estar las que se ha creado el programador 363 00:14:49,559 --> 00:14:51,460 ¿Por qué en tu código has casteado 364 00:14:51,460 --> 00:14:52,639 el matrandon a un int? 365 00:14:54,039 --> 00:14:55,500 ¿Por qué he casteado 366 00:14:55,500 --> 00:14:57,259 el matrandon a un int? Porque el 367 00:14:57,259 --> 00:14:59,720 constructor, porque este parámetro 368 00:14:59,720 --> 00:15:01,659 era entero, la propiedad 369 00:15:01,659 --> 00:15:03,000 del alumno era entero 370 00:15:03,000 --> 00:15:05,159 era la edad, no sé qué era 371 00:15:05,159 --> 00:15:11,519 Entonces no es la edad 372 00:15:11,519 --> 00:15:12,799 Porque 2000 no creo que fuera 373 00:15:12,799 --> 00:15:15,220 El año 374 00:15:15,220 --> 00:15:17,679 Sí, porque era el al año 375 00:15:17,679 --> 00:15:20,399 Vale 376 00:15:20,399 --> 00:15:23,259 A ver, es que este no es exactamente 377 00:15:23,259 --> 00:15:24,059 Vuestro ejercicio 378 00:15:24,059 --> 00:15:27,460 Este es uno con más cositas puestas 379 00:15:27,460 --> 00:15:28,320 Pero es la misma idea 380 00:15:28,320 --> 00:15:30,559 Es uno venido 381 00:15:30,559 --> 00:15:32,600 Pero bueno 382 00:15:32,600 --> 00:15:36,100 La idea es eso 383 00:15:36,100 --> 00:15:37,980 Hacer un crear alumno con una excepción 384 00:15:37,980 --> 00:15:39,720 Capturarlo y ver cómo funciona el tema 385 00:15:39,720 --> 00:15:41,580 Bueno, ¿nos damos por satisfechos? 386 00:15:42,399 --> 00:15:43,539 Con las excepciones 387 00:15:43,539 --> 00:15:44,000 Sí