Excepciones

En Python, es muy fácil realizar operaciones como división y manejo de archivos. Sin embargo, a veces pueden ocurrir errores durante la ejecución del programa, haciendo que el programa se detenga abruptamente. Aquí es donde entra en juego el manejo de excepciones. Python utiliza bloques try, except para manejar excepciones. Las operaciones que pueden generar excepciones se colocan dentro del bloque try, y el código para manejar las excepciones se coloca dentro del bloque except.
Considera una simple operación de división:
a = int(input())
b = int(input())
print(a / b)
print('The program continues...')
En el caso de ingresar 10 y 2, el programa imprimiría 5.0 y The program continues.... Sin embargo, si ingresamos 10 y 0, el programa se detendría y mostraría un mensaje de error: ZeroDivisionError: division by zero.
Para manejar este error, podemos usar el manejo de excepciones:
try:                       # Intenta realizar las operaciones en el bloque
    a = int(input())
    b = int(input())
    print(a / b)
except ZeroDivisionError:  # Qué hacer si ocurre un ZeroDivisionError
    print('Error: Division by zero is not allowed.')

print('The program continues...')
Ahora, si ejecutamos el programa con entradas 10 y 0, imprimirá Error: Division by zero is not allowed. y The program continues....
De manera similar, podemos manejar otras excepciones como ValueError, que ocurre cuando la entrada no es un entero. Podemos añadir otro bloque except para manejar este error:
try:
    a = int(input())
    b = int(input())
    print(a / b)
except ZeroDivisionError:
    print('Error: Division by zero is not allowed.')
except ValueError:
    print('Error: Input is not a valid integer.')
Podemos agregar tantos bloques except como necesitemos para manejar diferentes tipos de excepciones. De esta manera, podemos asegurarnos de que nuestro programa no se detenga abruptamente debido a errores y podemos proporcionar mensajes útiles al usuario.
💡
Es importante notar que el orden de los bloques except importa. Python ejecutará el primer bloque except que coincida con el tipo de error ocurrido. Si ninguno de los bloques except coincide, el error no será manejado.
También puedes capturar múltiples excepciones en una sola línea:
try:
    a = int(input())
    b = int(input())
    print(a / b)
except (ZeroDivisionError, ValueError) as e:
    print('Error:', e)
Aquí, e contendrá la instancia de la excepción generada.
Al usar el manejo de excepciones, podemos hacer que nuestros programas en Python sean más robustos y fáciles de usar.

Desafío: Área de un Rectángulo

Debes escribir un programa que lea dos números de punto flotante desde la entrada; estos números h y w representan la altura y el ancho de un rectángulo. Tu tarea es calcular e imprimir el área del rectángulo.
Sin embargo, no todas las entradas están garantizadas a ser números válidos. Si h o w no son números, debes manejar la excepción e imprimir The input is not a number.
La primera línea de la entrada contiene la altura h y la segunda línea contiene el ancho w.
El programa debe imprimir una sola línea con el área del rectángulo si las entradas son números válidos o The input is not a number si una o ambas entradas no son números válidos.
Entrada
Salida
5.2 7.8
40.56
3.7 abc
The input is not a number
abc 5.5
The input is not a number
abc def
The input is not a number
Nota: La entrada contendrá solo números positivos en caso de que sean números.
 

Constraints

Time limit: 1 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue