Curso de Python. Excepciones III. Vídeo 23
Introducción a las excepciones en Python
Resumen de la sección: En esta sección del curso de programación en Python, se aborda el tema de las excepciones. Se explica cómo lanzar excepciones de forma intencionada en lugar de que sean generadas por el programa. Aunque aún no se ha cubierto la programación orientada a objetos, se introduce la sintaxis básica para lanzar excepciones.
Creando una función para evaluar edades
- Se crea una función llamada "evalúa edad" que recibe un parámetro llamado "edad".
- La función evalúa diferentes condiciones basadas en la edad proporcionada.
- Si la edad es menor que 20, devuelve el mensaje "eres muy joven".
- Si la edad está entre 20 y 40, devuelve el mensaje "eres joven".
- Si la edad está entre 40 y 65, devuelve el mensaje "eres maduro".
- Si la edad es mayor o igual a 65, devuelve el mensaje "cuídate".
Lanzando una excepción intencionadamente
- Se explica que podemos lanzar nuestras propias excepciones cuando se cumpla una condición específica.
- Para ello, utilizamos la instrucción
raiseseguida del tipo de excepción que queremos lanzar.
- En este caso, si la edad es menor que cero (una situación imposible), podemos lanzar una excepción intencionadamente.
Sintaxis para lanzar una excepción
- Se muestra cómo utilizar un condicional para evaluar si la edad es menor que cero.
- Dentro del condicional, utilizamos
raiseseguido del tipo de excepción que queremos lanzar.
Importancia de la sintaxis
- Aunque en este momento no se explora a fondo la utilidad de lanzar excepciones, es importante familiarizarse con la sintaxis para futuros usos.
- Se enfatiza que el objetivo principal es comprender la estructura y sintaxis básica para poder aplicarla más adelante en el curso.
Ejemplo práctico: Evaluación de edades
Resumen de la sección: Se muestra un ejemplo práctico utilizando la función "evalúa edad" creada anteriormente.
Creando un programa sencillo
- Se crea un programa sencillo que utiliza la función "evalúa edad".
- El programa solicita al usuario ingresar una edad y luego llama a la función para evaluarla.
- El resultado se imprime en pantalla.
Ejecutando el programa
- Se ejecuta el programa con diferentes edades como entrada.
- Se muestra cómo el programa devuelve los mensajes correspondientes según las condiciones evaluadas por la función "evalúa edad".
Manejo de una situación imposible
- Se plantea el escenario donde se ingresa una edad negativa, lo cual no tiene sentido.
- Se menciona que podemos hacer varias cosas para manejar esta situación, como mostrar un mensaje indicando que es una edad imposible o lanzar una excepción intencionadamente.
Lanzamiento de excepción por edad negativa
- Se explica cómo utilizar
raisedentro del condicional para lanzar una excepción cuando la edad es menor que cero.
- Aunque su utilidad en este ejemplo sea limitada, se destaca la importancia de comprender la sintaxis para futuros casos.
Conclusiones
- Se ha aprendido cómo lanzar excepciones intencionadamente en Python.
- Aunque aún no se ha cubierto a fondo el tema de las excepciones propias y la programación orientada a objetos, se ha adquirido conocimiento sobre la sintaxis básica para lanzar excepciones.
- Es importante comprender y familiarizarse con esta sintaxis para poder aplicarla en situaciones más complejas en el futuro.
Lanzamiento de excepciones personalizadas
Resumen de la sección: En esta sección, se explora cómo lanzar excepciones personalizadas en Python utilizando la instrucción raise. Se muestra cómo especificar el tipo de excepción y cómo acompañarla con un mensaje personalizado.
Lanzamiento de excepciones personalizadas
- La instrucción
raisepermite lanzar una excepción específica.
- Es posible especificar el tipo de excepción que se desea lanzar, como
ValueErroroTypeError.
- Se puede acompañar la excepción con un mensaje personalizado para indicar al usuario qué ha ocurrido.
- Por ejemplo, "No se permiten edades negativas".
Ejemplo de lanzamiento de excepción por edad negativa
Resumen de la sección: En este ejemplo, se muestra cómo utilizar el lanzamiento de excepciones para validar una edad ingresada por el usuario. Si se ingresa una edad negativa, se lanza una excepción con un mensaje personalizado.
Ejemplo de validación de edad negativa
- Si se ingresa una edad negativa, se lanza una excepción utilizando la instrucción
raise.
- El programa muestra un mensaje personalizado indicando que no se permiten edades negativas.
Importancia del manejo adecuado de las excepciones
Resumen de la sección: Se destaca la importancia del manejo adecuado de las excepciones y cómo afecta al flujo del programa. Si no se captura o controla una excepción, el programa puede detenerse abruptamente sin ejecutar líneas de código posteriores.
Manejo adecuado de excepciones
- Es importante capturar o controlar las excepciones utilizando bloques
try-except.
- Si una excepción no se captura, el programa puede detenerse abruptamente sin ejecutar líneas de código posteriores.
- En el ejemplo mostrado, después del lanzamiento de la excepción, no se ejecutan las líneas de código siguientes.
Lanzamiento de excepciones personalizadas con clases propias
Resumen de la sección: Se menciona que es posible crear clases propias para lanzar excepciones personalizadas. Esto permite definir un comportamiento específico al lanzar una excepción propia.
Lanzamiento de excepciones personalizadas con clases propias
- Es posible crear una clase propia para definir una excepción personalizada.
- Dentro de esta clase, se puede programar el código necesario para que el programa realice acciones específicas al lanzar esa excepción.
- Esto permite tener un mayor control sobre el manejo y comportamiento de las excepciones en el programa.
Ejemplo de lanzamiento y captura intencionada de una excepción
Resumen de la sección: Se muestra un ejemplo donde se lanza intencionalmente una excepción al intentar calcular la raíz cuadrada de un número negativo. Además, se demuestra cómo capturar dicha excepción para evitar que el programa se detenga abruptamente.
Ejemplo de cálculo incorrecto y captura intencionada
- Se muestra un ejemplo donde se intenta calcular la raíz cuadrada de un número negativo.
- Al intentar realizar este cálculo, se lanza una excepción
ValueErrorindicando que el número no puede ser negativo.
- Se utiliza un bloque
try-exceptpara capturar la excepción y evitar que el programa se detenga abruptamente.
Importación de clases y uso de métodos
Resumen de la sección: Se menciona la importancia de importar clases y cómo utilizar sus métodos en un programa. En este caso, se muestra cómo importar la clase math para utilizar su método sqrt() y calcular la raíz cuadrada de un número.
Importación de clases y uso de métodos
- Para utilizar una clase en Python, es necesario importarla previamente.
- En este ejemplo, se importa la clase
mathpara poder utilizar su métodosqrt().
- El método
sqrt()permite calcular la raíz cuadrada de un número.
Lanzamiento intencional de excepción por número negativo
Resumen de la sección: Se muestra cómo lanzar intencionalmente una excepción si el número ingresado es negativo al calcular su raíz cuadrada. Además, se especifica el tipo de excepción a lanzar.
Lanzamiento intencional de excepción por número negativo
- Si el número ingresado es menor que cero, se lanza una excepción utilizando la instrucción
raise.
- En este caso, se escoge el tipo de excepción
ValueErrorpara indicar que el número no puede ser negativo.
Finalización del programa con mensaje personalizado
Resumen de la sección: Se muestra cómo finalizar el programa con un mensaje personalizado si se ingresa un número negativo al calcular su raíz cuadrada.
Finalización del programa con mensaje personalizado
- Si se ingresa un número negativo, el programa muestra un mensaje indicando que el número no puede ser negativo.
- El programa se detiene después de mostrar este mensaje.
Un rodeo
Resumen de la sección: En esta sección, se introduce el concepto de excepciones en Python y cómo manejarlas. Se muestra un ejemplo de una función que calcula la raíz cuadrada de un número y cómo capturar una excepción cuando se le pasa un valor negativo.
Manejo de excepciones en Python
- Se puede utilizar el bloque
try-exceptpara capturar y manejar excepciones en Python.
- Si ocurre una excepción dentro del bloque
try, el flujo de ejecución salta al bloqueexcept.
- Es posible especificar qué tipo de excepción queremos capturar utilizando la palabra clave
exceptseguida del nombre del error.
- Por ejemplo, si queremos capturar un
ValueError, utilizamosexcept ValueError.
- También es posible asignar un alias al error capturado para poder referenciarlo más fácilmente.
- Por ejemplo, podemos hacer
except ValueError as errorpara asignarle el nombre "error" a la excepción capturada.
Flujo de ejecución con valores positivos
Resumen de la sección: En esta sección, se muestra cómo funciona el flujo de ejecución cuando se le pasa un valor positivo a la función que calcula la raíz cuadrada.
- Cuando se le pasa un valor positivo a la función, esta devuelve correctamente la raíz cuadrada del número.
- El flujo de ejecución llega hasta la última línea del programa y se imprime "Programa terminado".
Excepción con valores negativos
Resumen de la sección: En esta sección, se muestra qué ocurre cuando se le pasa un valor negativo a la función que calcula la raíz cuadrada.
- Cuando se le pasa un valor negativo a la función, se lanza una excepción con un mensaje personalizado.
- El flujo de ejecución no llega hasta la última línea del programa y no se imprime "Programa terminado".
- Es necesario capturar la excepción utilizando el bloque
try-exceptpara evitar que el programa termine abruptamente.
Capturando y controlando excepciones
Resumen de la sección: En esta sección, se muestra cómo capturar y controlar las excepciones que nosotros mismos lanzamos.
- Podemos utilizar el bloque
try-exceptpara capturar nuestras propias excepciones.
- Es importante capturar el mismo tipo de excepción que hemos lanzado.
- Podemos asignar un alias al error capturado para referenciarlo más fácilmente.
- Podemos imprimir el mensaje de error correspondiente al error capturado.
Utilidad de lanzar nuestras propias excepciones
Resumen de la sección: En esta sección, se explica por qué es útil poder lanzar nuestras propias excepciones.
- Aunque un programa correctamente escrito debería evitar errores, hay circunstancias externas que pueden causar excepciones.
- Por ejemplo, al intentar conectar con una base de datos que no está disponible.
- Lanzar y capturar nuestras propias excepciones nos permite proporcionar mensajes descriptivos sobre los errores ocurridos.