Saltar navegación

20250227 Excepciones_2 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 7 de marzo de 2025 por Raquel G.

4 visualizaciones

Descargar la transcripción

La filosofía es esa, que es, la máquina virtual de Java tiene un montón de posibles excepciones contempladas. 00:00:02
Lectura, o sea, string que me has metido por consola que no casa con el tipo de dato que yo espero. 00:00:10
Que estás en un array y te estás saliendo de él. 00:00:16
Que estás tratando de hacer un fichero y el fichero no existe. 00:00:19
Pues tiene un montón de situaciones de esas contempladas, que las contempla. 00:00:22
Estas, estas no me gustan, estas no me gustan, estas no me gustan, se podrían dar y son feas. 00:00:26
Pues para cada una de ellas hace una clase. 00:00:30
una clase, que son esas alrededor 00:00:32
de 400 que están en la 00:00:34
JRE, una clase, entonces tú 00:00:36
haces tu código y tu programa y patatín 00:00:38
entonces la máquina virtual se pone a ejecutarlo 00:00:40
y en ese código 00:00:42
va a acabar llamando siempre en algún 00:00:44
momento a métodos de la 00:00:46
JRE, lógicamente, como cuando hacemos 00:00:48
un next in, como cuando 00:00:50
hacemos un system out print del n 00:00:52
cuando usamos la clase string 00:00:54
y llamamos al charat, cuando 00:00:56
hacemos un array y ponemos los corchetitos 00:00:58
estamos todo el rato 00:01:00
llamando a clases de la máquina virtual 00:01:02
todo el rato 00:01:04
entonces, la máquina virtual 00:01:04
va saltando, se va a las clases que estamos llamando 00:01:07
y detecta 00:01:10
uy, pues mira, justo aquí 00:01:11
está pasando con el dato que has metido 00:01:13
o con lo que estás haciendo con el índice 00:01:16
del array, justo está pasando una de las cosas 00:01:18
que yo tengo apuntadas en la libreta 00:01:19
que no me gustan, pues creo el objeto 00:01:21
excepción correspondiente 00:01:24
¿vale? cada situación 00:01:25
que la máquina virtual tiene apuntada en la libreta 00:01:27
esto no me gusta, esto no me gusta 00:01:29
tiene una clase asociada 00:01:31
pues dice, pues mira, uy, está pasando 00:01:33
algo de lo que no me gusta, creo 00:01:35
un objeto de la clase excepción que tengo 00:01:36
asociada 00:01:39
y te lo entrego 00:01:39
y te lo entrego y ya está 00:01:41
y tú decides qué haces 00:01:44
lo que decíamos el otro día es que tenemos 00:01:47
dos posibilidades y efectivamente tenemos dos 00:01:49
y solo dos, ¿lo ignoras? 00:01:50
pues entonces si lo ignoras 00:01:53
lo que yo hago como máquina virtual es 00:01:55
paro el programa 00:01:57
y se acabó, no hay más que hacer, si lo ignoras 00:01:58
para el programa, no hay más que hacer 00:02:00
pero tú como programador 00:02:02
dices, jolines, no quiero que la máquina virtual 00:02:04
pare el programa en cuanto 00:02:07
salga una excepción de esta si él me la 00:02:08
entregue, no quiero porque es radical 00:02:10
entonces el usuario va a estar ahí de repente con el programa 00:02:12
para, ya está, no quiero 00:02:14
vale, pues entonces hacíamos 00:02:16
esta otra alternativa 00:02:19
vale 00:02:20
que es meter el código 00:02:21
que prevemos 00:02:24
que puede que des excepción 00:02:26
o no solo 00:02:29
que lo preveamos, sino que a lo mejor 00:02:30
ya lo hemos pasado a fase de pruebas 00:02:32
y han dicho, uy, cuidadín, que este 00:02:34
si yo meto el número mal, te da 00:02:36
excepción. Pues el código que 00:02:38
ya sabemos, porque lo sabemos de otras veces, 00:02:40
o porque lo has dicho en la fase de pruebas 00:02:43
o por lo que sea, el código que 00:02:44
sabemos que puede dar una excepción 00:02:46
lo metemos en el try-catch. 00:02:48
¿Vale? Y esto ya 00:02:51
¿qué significaba? Lo que 00:02:52
dijimos el otro día. Entonces 00:02:54
la máquina virtual viene por aquí, papapá, papapá. 00:02:56
Y entra en el try-catch. 00:03:00
Cuidado, ojo. 00:03:04
El try-catch abre automáticamente un bloque de llaves. 00:03:05
Luego recordad el ámbito de las variables. 00:03:09
Entonces, lo que tú declares dentro del try-catch no se va a ver fuera. 00:03:12
¿Verdad? 00:03:16
Entonces, si en este código quisiéramos mostrar el número introducido. 00:03:17
Claro. 00:03:23
No, no te pondría null. 00:03:24
El compilador es que no te deja. 00:03:25
¿Vale? 00:03:28
introdujiste 00:03:34
introdujiste 00:03:37
introdujiste 00:03:38
que feo, suena 00:03:41
vale 00:03:43
imagínate que quieres poner esto 00:03:45
pues lógicamente aquí el compilador te va a decir 00:03:47
¿eh? ¿quién es num? 00:03:50
no tengo ni idea 00:03:51
claro, porque la hemos declarado dentro del try catch 00:03:52
y al declarar 00:03:55
efectivamente 00:03:57
que solución tan sencilla 00:03:58
bueno, no pasa nada, yo la tengo que leer dentro 00:04:00
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. 00:04:03
Pero hombre, declara la fuera. 00:04:07
Y ya está. 00:04:11
Aún así, como podíamos prever, aún así el compilador se va a quejar. 00:04:17
¿Por qué? 00:04:23
Porque te dice, oye, yo no tengo la seguridad de que este try se vaya a ejecutar correctamente. 00:04:26
porque si next 00:04:30
in me ha sacado una excepción 00:04:32
no se va a llegar a hacer la 00:04:34
asignación, con lo cual 00:04:36
podría no tener valor 00:04:38
entonces pues bueno 00:04:39
uno da la solución en función de como quiera 00:04:42
que funcione su programa, claro 00:04:44
pero un valor lo tiene que 00:04:45
inicializar 00:04:48
vale 00:04:48
bueno, pues esto por un lado, y entonces 00:04:51
el try catch se comportaba como un if 00:04:54
que es, intenta hacer 00:04:56
todo esto 00:04:58
que lo consigues genial 00:04:58
del catch te olvidas 00:05:01
y tu programa continúa 00:05:03
en cualquier caso 00:05:04
vale 00:05:16
que en algún momento 00:05:17
te sale esa excepción 00:05:19
pum, porque next in 00:05:21
nos hemos metido ahí, hemos empezado a ejecutar 00:05:23
código, la máquina virtual ha dicho que 00:05:26
lo que intentas hacer está en la libretita de 00:05:27
cosas que no, ha ido a la clase 00:05:29
correspondiente, ha generado el objeto 00:05:32
pues ha pasado todo eso 00:05:33
pues entonces aquí en este punto 00:05:35
en este, nos ha llegado a nosotros 00:05:37
ese objeto, a nosotros, bueno 00:05:39
la máquina virtual que es la que lo está ejecutando, claro 00:05:41
la máquina virtual, cuando hace 00:05:43
el nexting, en lugar de llegarle 00:05:45
el resultado del método, que es el numerito 00:05:47
para asignárselo a num 00:05:49
no le ha llegado el resultado del método 00:05:50
con lo cual no puede asignarlo a num, lo que le ha llegado 00:05:53
es toma, un objeto excepción, eso es lo que 00:05:55
le ha llegado, dice, ojo, ¿qué hago yo con este 00:05:57
objeto excepción? pues se pone 00:05:59
a mirar en todos 00:06:01
los cats que haya, que no tiene 00:06:03
por qué haber uno, puede haber muchos 00:06:05
¿está? 00:06:07
magnífico 00:06:12
por poner la primera que se me ha ocurrido 00:06:13
vamos a 00:06:21
vamos a poner aquí 00:06:30
sí, pero voy a poner otra porque esta 00:06:33
como no hay una sentencia dentro que la pueda 00:06:38
generar, me dice 00:06:40
pero bueno, ¿para qué me pones esta? esta es imposible 00:06:42
Por ejemplo, vamos a imaginarnos para que esto sea un poquito así más... 00:06:48
Vamos a suponer que queremos poner este numerito en realidad en un array, por lo que sea. 00:06:59
En la primera posición de un array, entonces aquí haríamos números de cero igual a next in. 00:07:12
Se me ha olvidado ya todo, yo es que ya no tengo edad de estar aquí. 00:07:29
No, no es verdad, es mentira 00:07:33
Me sigue apeteciendo muchísimo 00:07:35
Estudiar 00:07:38
Es raro, pero 00:07:39
No, mi opinión no, me sigue apeteciendo 00:07:40
Claro, y te divierte 00:07:43
Pues seguir conociendo más cosas 00:07:48
Bueno, pues entonces 00:07:49
En este caso, por ejemplo 00:07:52
Podríamos considerar 00:07:53
A ver, aquí puede que me salga una excepción 00:07:55
Pero aunque aquí no me salga 00:07:58
Aquí puede que me salga una 00:07:59
porque estoy accediendo a una posición de un array 00:08:02
y, hombre, nosotros tenemos el array justo arriba. 00:08:04
Pero a lo mejor en otro caso el array no lo tenemos justo arriba. 00:08:08
Si nos lo han pasado, vete a saber de no sé dónde 00:08:11
y no sabemos si tiene espacio en esa posición o no. 00:08:13
Vale, entonces está, por ejemplo, un ejemplito tonto, 00:08:18
pero bueno, es un ejemplito en el cual aquí a lo mejor 00:08:20
podrían salir dos excepciones. 00:08:23
¿Vale? 00:08:25
En este caso, de hecho, si yo he declarado números así, 00:08:25
pues 00:08:29
aunque aquí no me salga excepción 00:08:32
porque yo he metido bien el entero 00:08:34
luego me va a salir aquí 00:08:35
y cuál me va a salir, la que ya nos ha salido otras veces 00:08:37
oye, que te has pasado el array 00:08:40
bueno, pues si yo quiero capturar 00:08:41
varias posibles excepciones 00:08:43
porque preveo, porque he comprobado 00:08:45
que mi código puede 00:08:47
petar por varios sitios 00:08:50
y no quiero que por ninguno de esos se pare 00:08:51
sino que siga 00:08:54
pues tengo que hacer varios cuts 00:08:55
¿cuál es la primera que capturo? 00:08:57
venga, esta 00:09:00
entonces 00:09:01
vamos a imaginar que aquí se da 00:09:04
la primera de las excepciones 00:09:06
este ha metido 3,4 00:09:08
como ha metido 3,4 00:09:11
esto ya no funciona 00:09:12
y en lugar de llegar el numerito 00:09:14
resultado sale la excepción 00:09:16
pues la máquina virtual se encuentra con el objeto excepción 00:09:17
que le llega ahí y dice, ah, vale 00:09:20
como no estoy en un try-catch 00:09:22
no paro, si no estuviéramos 00:09:23
en un trycat, ya sabe lo que tiene que hacer, facilísimo 00:09:26
va, programa detenido, se acabó 00:09:28
y me muestra una lerira roja por 00:09:30
piedad, pero ya está 00:09:32
pero como está en un trycat, dice, ah, que no tengo que 00:09:33
parar el programa, no tengo que pararlo, vale 00:09:36
pues venga, voy a coger este objeto 00:09:38
voy a ver de qué clase es, de esta 00:09:40
clase, pues me pongo a mirar 00:09:42
todas las cats una tras otra, hasta 00:09:44
que encuentre la primera 00:09:46
que coincide 00:09:48
en este caso, si es input time, ah, pues 00:09:49
mira, la primera, ya encontró la primerita que 00:09:52
coincide, pues me meto a hacer lo que haya en el catch 00:09:54
y ya está, y una vez 00:09:56
que lo he hecho, continúo 00:09:58
por aquí 00:10:00
¿vale? porque no se 00:10:01
para en ningún caso, que 00:10:04
resulta que esta sentencia no dio 00:10:06
excepción porque el tío metió 3 00:10:08
con lo cual el 3 genera 00:10:10
un next incorrecto, me devuelve el 00:10:12
numerito 3 00:10:14
y ahora ya me pongo a hacer la asignación 00:10:15
en el momento de hacer la asignación, la máquina virtual 00:10:18
dice, uy, nada 00:10:20
pues te saca el array in desbound exception 00:10:22
vale, pues entonces en este punto nos llega 00:10:24
la write in this bound exception, ¿qué hacemos con él? 00:10:26
¿paramos? no, no paramos, porque hay un try catch 00:10:28
pues vamos uno por uno 00:10:31
¿es esta? no, no es esta 00:10:32
¿es esta? ah, sí, pues 00:10:34
esta sí que es, pues voy a hacer lo que haga el catch 00:10:36
si es que tiene algo 00:10:39
¿que resulta que esta no está capturada? 00:10:40
¿y la otra sí? 00:10:50
pues sí que pararía el programa 00:10:52
¿vale? 00:10:53
el programa no se para cuando encuentra 00:10:55
un catch que encaja con la excepción 00:10:57
solo en ese caso 00:11:00
En ese caso hace el catch 00:11:01
Y luego salta aquí 00:11:02
Pero si habiendo un try catch 00:11:04
Resulta que ninguna 00:11:07
De las posibles 00:11:09
Excepciones contempladas coincide 00:11:10
Con la que se ha saltado de verdad 00:11:13
Pues entonces si que para 00:11:14
Dice es que esta no la tengo capturada 00:11:16
Entonces ahí si que paro 00:11:18
Vale pues eso por un lado 00:11:19
Así funciona el try catch básico 00:11:24
Este es un try multi catch 00:11:26
Vale 00:11:28
El multi catch 00:11:29
este se puede poner también 00:11:33
metiendo todas las posibilidades en la misma 00:11:35
poniéndolas con una barrita 00:11:37
así 00:11:39
input mismatch 00:11:39
claro, o array 00:11:42
in the spawn o no sé qué 00:11:45
es más cómodo, pero ¿cuál es la pega? 00:11:46
tú aquí puedes 00:11:50
tratar de forma separada 00:11:51
lo que quieres hacer en caso de 00:11:53
cada excepción, ¿qué ha sido esta? 00:11:55
has metido mal el número 00:11:57
que te ha salido el array, no hay sitio en el array 00:11:58
las puedes tratar de forma separada 00:12:01
y para cada uno haces una cosa distinta 00:12:03
que es lo bonito y lo ideal 00:12:05
si tú las pones todas aquí 00:12:06
es esta, o es esta otra 00:12:09
o es esta otra, pues tienes un único catch 00:12:10
para todas, pues ha habido una excepción 00:12:13
la que sea, entonces depende 00:12:15
de lo que quieras hacer, ¿vale? 00:12:16
¿qué ibas a preguntar? 00:12:18
el or lo que haces 00:12:19
va una por una, ¿es esta? 00:12:23
no, ¿es la siguiente que está en el or? 00:12:25
no, ¿es la siguiente que está en el or? no 00:12:27
si no encuentra ninguna es cuando para el programa 00:12:28
si encuentra alguna ya se mete 00:12:30
en el catch, pero es que se va a meter 00:12:33
en el mismo catch, sea cual sea de todas 00:12:34
sea cual sea, entonces bueno, no distingues 00:12:36
a la hora de darle una 00:12:39
realimentación al usuario 00:12:40
pues no distingues 00:12:42
vale 00:12:44
no distingues 00:12:46
pero podrías hacerlo 00:12:48
vale, he mentido como casi 00:12:50
siempre, casi siempre 00:12:52
en casi todo lo que os digo ahí 00:12:54
siempre hay un 1% de mentira 00:12:55
un 1% solo, porque claro 00:12:57
Todo tiene una vía de escape 00:13:02
Que algunas las decimos y otras no 00:13:04
Porque son un poco 00:13:05
Vale, pero es un 1% solo 00:13:06
La trola que te meto es de 1% 00:13:09
Te la podría meter más gorda 00:13:11
Pero no 00:13:13
Pues 00:13:13
Seguramente se sorprende y se da cuenta 00:13:17
De que sí 00:13:19
Tú no pruebes por si acaso 00:13:20
Vale, ¿en qué he mentido un poquito? 00:13:24
Pues que este objeto X 00:13:29
yo lo he obviado 00:13:31
entonces 00:13:33
cuando a este punto 00:13:35
ha llegado el objeto excepción 00:13:37
porque ha pasado esa cosa rara 00:13:39
ha llegado el objeto excepción 00:13:41
ese objeto excepción le ha llegado a la máquina virtual 00:13:42
entonces la máquina virtual ya hemos 00:13:45
dicho que mira la clase de ese objeto 00:13:47
para ir catch por catch hasta que encuentre la que encaja 00:13:49
pero es que el objeto enterito 00:13:51
lo tiene aquí metido 00:13:53
lo tiene ahí el objeto entero 00:13:55
ese objeto se va a meter de golpe en esta 00:13:57
entonces si aquí se nos ha lanzado 00:13:59
una excepción de tipo input 00:14:02
mis match exception pues ese objeto 00:14:04
excepción se queda aquí metido 00:14:06
en x y yo aquí puedo usar 00:14:08
ese x si quiero 00:14:10
y ese x que tiene 00:14:11
pues tiene métodos como por ejemplo 00:14:13
el print extract trace 00:14:16
que que te hace 00:14:18
la línea roja 00:14:19
con lo cual cuando decimos que la máquina 00:14:21
sin pararte el programa 00:14:24
esto es para líneas rojas 00:14:27
entonces cuando nosotros decimos 00:14:28
que no hay un try catch 00:14:31
y que la máquina virtual al ver la excepción 00:14:32
te para el programa 00:14:34
te para el programa pero te hace justo antes eso 00:14:35
¿vale? en realidad te hace dos cosas 00:14:38
te hace esto, aunque no lo veamos 00:14:40
para sacar líneas rojas 00:14:43
y luego te para el programa 00:14:44
¿vale? 00:14:46
entonces este es uno de los métodos 00:14:48
que tiene este objeto 00:14:50
en tiempo de desarrollo 00:14:51
cuando estamos desarrollando 00:14:54
siempre ponemos esto 00:14:56
Porque es que la información de por qué ha salido la excepción me viene aquí. 00:14:57
A ver, la puedo dar yo con el system out. 00:15:03
Pero es que aquí me viene toda la traza detallada, en qué línea de código, me viene todo. 00:15:06
Entonces, siempre pongo esto. 00:15:10
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. 00:15:12
Porque en el caso de que falle, yo no quiero que al usuario se le muestre una de las líneas tan feas. 00:15:20
quiero ya que se le muestre mi mensajito bonito 00:15:25
o mi pantalla 00:15:28
de error o lo que sea 00:15:30
pero en tiempo de desarrollo esto es fundamental 00:15:31
porque yo sí que quiero ver todo ese chorizo 00:15:33
en esta línea, en esta no sé qué 00:15:35
entonces si ejecutamos este código 00:15:37
metiendo mal el numerito 00:15:40
introduzca número 00:15:41
8,6 00:15:46
pues me hace 00:15:48
este es el 00:15:50
print extract race, es este 00:15:52
y luego 00:15:54
como él lo hace multilo, este rollo 00:15:55
Pues has metido mal el número 00:15:58
O sea, es que lo has metido 00:16:00
El system out, como veis, lo ha colado 00:16:02
Detalle curioso 00:16:04
El system out 00:16:06
Me lo ha colado entre medias de una de estas 00:16:07
Porque ahí hace un multi-hilo 00:16:10
Vale, pero eso ya es un tema suyo 00:16:12
Lo puedes llamar 00:16:15
Como te dé la gana 00:16:22
es como el nombre del parámetro 00:16:23
de un método 00:16:33
tú el nombre del parámetro de un método 00:16:34
bueno pues tú lo llamas 00:16:35
como quieras porque es el parámetro 00:16:51
de un método 00:16:53
entonces tú lo llamas como te salga 00:16:53
de cualquier parte de tu cuerpo 00:16:55
vale 00:16:57
entonces 00:16:59
¿a qué viene 00:17:01
entonces? ¿por qué decía yo que os estaba 00:17:03
mintiendo del todo cuando si haces 00:17:05
un catch con todos 00:17:07
en la misma no puedes 00:17:09
depurar? porque de X puedes 00:17:11
sacar la clase a la que pertenece, no tenemos 00:17:13
un instance of que te dice a qué clase 00:17:15
pertenece un objeto, pues con X 00:17:17
uno podría hacer lo que le diera la gana, que esto es 00:17:19
muy retorcido 00:17:21
Si es instance of 00:17:22
No sé qué 00:17:25
Pues entonces sé que la excepción lanzada fue esta 00:17:27
Pero a ver, es de tontos 00:17:33
Hacer un catch con todas en la misma 00:17:34
Y luego ponerte ahí un if el save con instance of 00:17:36
Para eso te haces 00:17:39
Varios catch separados y mucho más bonito 00:17:40
¿Vale? 00:17:43
No entendí eso 00:17:44
Es como lo de arriba pero como más 00:17:45
Claro, que tú aquí hemos dicho que podrías poner 00:17:47
Todas las excepciones juntitas 00:17:50
00:17:51
Claro, entonces si las pones todas juntitas 00:17:52
Sí, bueno 00:17:58
Claro, sí 00:18:07
Podrías, pero 00:18:11
Pero a lo mejor es que tú solamente quieres capturar estas 00:18:12
Y si pones la super clase 00:18:18
Es que cualquier cosa entre en ese catch 00:18:20
Entonces es peligroso 00:18:22
Porque se va a resolver algo 00:18:23
que tú no contemplas, que tú no contemplabas, 00:18:25
se va a resolver de la misma manera que el otro. 00:18:27
Ya, pero no va a parar el programa, 00:18:32
por ejemplo, a lo mejor tú querías que parara. 00:18:33
Entonces, depende. Como de costumbre, depende de la situación. 00:18:35
Luego, dentro del Instasoft, 00:18:37
pones si es esa excepción para mi programa. 00:18:39
Sí, pero... 00:18:42
Sí, sí, siempre hay salidas para todo. 00:18:43
Pero bueno, que lo de poner la superclase 00:18:45
tiene su... 00:18:47
No lo digo muy bien. 00:18:48
Venga, vale. 00:18:56
hala ya está 00:18:57
a ver 00:18:59
la curiosidad todo hay que dejarlo 00:19:03
fluir 00:19:06
no hay que cercenar 00:19:06
no hay que cortarse ningún impulso 00:19:09
bueno 00:19:11
pues 00:19:13
vale 00:19:15
el ex pues tiene más cositas 00:19:17
más métodos más chorraditas pero bueno 00:19:19
esto es lo único importante 00:19:21
luego 00:19:23
Ya casi acabamos 00:19:24
Él para que si lo veis por ahí 00:19:28
Diga, hijo, es que no nos cuentan 00:19:29
Pues el try-catch 00:19:31
Tiene una tercera cláusula 00:19:33
Que se le puede poner opcional 00:19:35
El catch no es opcional, claro 00:19:37
Que es el finally 00:19:39
Que es, claro 00:19:39
El finally es, me da igual que haya sido por el try 00:19:43
Me da igual que haya sido por el catch 00:19:45
Haya sido por el camino 00:19:47
Que haya sido, haz eso de ahí 00:19:49
Que puede ser un mensaje 00:19:51
un cerrar flujos cuando esto se trata de abrir 00:19:53
estás haciendo aficheros 00:19:55
un cerrar la conexión de bases de datos 00:19:57
lo que sea, entonces esto 00:19:59
se ejecuta 00:20:00
siempre 00:20:02
y es opcional 00:20:03
vale, entonces ya lo último 00:20:06
el truco del vago 00:20:22
el truco del vago 00:20:23
vale 00:20:25
tú quieres que tu programa no pare 00:20:40
por nada del mundo, tienes aquí 00:20:42
un código muy largo que hace un montón de 00:20:44
cosas, lo que sea 00:20:46
que no es el caso 00:20:48
porque este código no hace nada y es una chorrada 00:21:03
pero bueno, imaginaos 00:21:05
que tenemos aquí 00:21:07
un montonazo de código 00:21:08
mucho código 00:21:10
hay a mogollón 00:21:16
y por nada del mundo queremos que este programa 00:21:16
se detenga, pase lo que pase 00:21:19
entonces 00:21:21
yo tendría que poner ahí 00:21:22
todas las que contemplo 00:21:24
pero siempre puede haber alguna que no se me ocurra 00:21:27
o que no sepa 00:21:30
Pues pones la superclase 00:21:30
Porque todas las excepciones 00:21:33
Todas heredan de 00:21:37
Exception 00:21:38
Todas heredan de Exception 00:21:39
Exception es la superclase 00:21:41
Y todas 00:21:43
Arraying desbono, Exception 00:21:44
Todas heredan de Exception 00:21:46
Con lo cual, sí, claro, ya está 00:21:48
Si eres un vago 00:21:51
Entonces, da igual lo que pase por aquí 00:21:52
Me da lo mismo la excepción que salga 00:21:55
Cuando él se vaya al catch 00:21:57
va a decir, uy es de tipo exception 00:21:59
claro, todas son de tipo exception, ¿cómo no va a ser? 00:22:01
entonces va a entrar ahí 00:22:03
la traza era x.traction 00:22:04
print extract trace 00:22:09
entonces pues sí 00:22:11
no hemos parado el programa 00:22:18
por nada del mundo 00:22:19
pero estamos capturando todas las excepciones 00:22:20
por igual, aunque sean excepciones muy distintas 00:22:25
a lo mejor hay excepciones 00:22:27
que sí que querríamos que pararan el código 00:22:29
bueno, pues ya está 00:22:31
entonces gracias a la herencia 00:22:33
pues siempre uno puede recurrir a esto 00:22:35
cuando no quiere escribir tantos multicats 00:22:37
pues si pone esto, lo tiene 00:22:39
pero bueno, es feo 00:22:40
pero a ver, lo feo y lo bonito 00:22:43
va a depender de los procedimientos 00:22:45
en donde vosotros 00:22:48
estéis integrados a trabajar 00:22:49
es como lo del retún que me preguntabas antes 00:22:51
que esto es donde tú 00:22:53
vayas, haz lo que hagan 00:22:55
efectivamente 00:22:58
hay principios 00:23:00
más o menos básicos 00:23:02
que es, uno básico 00:23:03
lógicamente es que los códigos sean estructurados 00:23:05
y un código estructurado 00:23:07
efectivamente evita la multiplicidad de 00:23:09
return y evita los break 00:23:11
y así es más estructurado, porque 00:23:12
estructurado significa que no tengas salidas por mil sitios 00:23:14
entonces eso se desestructura y es un 00:23:17
cachondeo, estructurado es que el 00:23:19
camino esté muy definido y que el punto de salida 00:23:21
y el punto de entrada esté lo más 00:23:23
unificado posible 00:23:25
entonces eso efectivamente evita los break y muchos 00:23:26
return, pero 00:23:29
esto es un mundo abierto 00:23:30
Hay muchas maneras de programar 00:23:32
Muchos procedimientos, muchas cosas 00:23:35
Lo importante es que vosotros 00:23:37
Tengáis la sensación de que controláis todo 00:23:39
De que sabéis de qué va la cosa 00:23:41
Y que sepáis adaptaros 00:23:43
Y ya está 00:23:44
Bueno, poco a poco 00:23:46
Que estamos en marzo, ya pronto 00:23:48
Así que, menos mal que tenemos 00:23:50
La semana santa en la que vais a estudiar mucho 00:23:53
Ya, queda todo segundo 00:23:55
Pero 00:23:59
pero segundo es muy corto 00:24:00
pero bueno, tenéis todo el verano 00:24:03
y toda la semana se va a estudiar 00:24:05
bueno 00:24:06
a ver, aquí sí que vamos a descansar 00:24:09
porque lo otro 00:24:11
de sesión es que nos falta, que lo hacemos en la hora 00:24:13
que viene sin falta 00:24:15
no, lo del final no, si ya lo hemos dado 00:24:16
terminado 00:24:19
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Primer Curso
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
4
Fecha:
7 de marzo de 2025 - 17:42
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
24′ 21″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
111.30 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid