Menu
Coddy logo textTech

Manejo de múltiples excepciones

Parte de la sección Logic & Flow del Journey de Python de Coddy. Lección 65 de 78.

En Python, podemos manejar diferentes tipos de exceptions en bloques separados de except. Esto nos permite responder de manera diferente según el error específico que ocurre.

Comienza con una estructura básica de try-except:

try:
    # Código que podría lanzar excepciones
    pass
except Exception as e:
    # Manejar cualquier excepción
    pass

Para gestionar varias excepciones, añade bloques except específicos:

try:
    number = int(input("Enter a number: "))
    result = 10 / number
    print(result)
except ValueError:
    print("That's not a valid number!")
except ZeroDivisionError:
    print("Cannot divide by zero!")

También puedes capturar varios tipos de excepciones en un solo bloque except:

try:
    # Algún código
    pass
except (ValueError, TypeError):
    print("Invalid input type!")

El orden de los bloques except importa: coloca siempre las exceptions más específicas antes que las más generales.

challenge icon

Desafío

Fácil

Crea una función llamada process_data que:

  1. Acepte un string input que represente datos potenciales
  2. Intente convertirlo en un integer, después calcule 100 dividido por ese integer
  3. Devuelva el result
  4. Gestione al menos 3 posibles exceptions: 
    • ValueError si el input cannot convertirse en un integer (print "Input must be a number!")
    • ZeroDivisionError si el input es 0 (print "Cannot divide by zero!")
    • Cualquier otra exception con un gestor genérico (print "An unexpected error occurred!")

Pruébalo tú mismo

def process_data(input_string):
    try:
        # Intenta convertir la cadena de entrada a un entero
        
        # Calcula 100 dividido por el valor de entrada
        
        # Devuelve el resultado
        
    except ValueError:
        # Maneja el caso en el que la entrada no se puede convertir a un entero
        
    except ZeroDivisionError:
        # Maneja el caso en el que la entrada es cero
        
    except:
        # Maneja cualquier otra excepción inesperada
        
    return None
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Logic & Flow

Practica por tu cuenta: Compilador de Python online