20250227 Excepciones_2 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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
Sí
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
no
00:19:01
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