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 excepciones en bloques except independientes. Esto nos permite responder de manera diferente según el error específico que ocurra.
Comience con una estructura básica try-except:
try:
# Code that might raise exceptions
pass
except Exception as e:
# Handle any exception
passPara manejar múltiples 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 múltiples 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: siempre coloca las excepciones más específicas antes que las más generales.
Desafío
FácilCrea una función llamada process_data que:
- Reciba una entrada de cadena que represente datos potenciales
- Intente convertirla a un entero, luego calcule 100 dividido por ese entero
- Devuelva el resultado
- Maneje al menos 3 posibles excepciones:
ValueErrorsi la entrada no se puede convertir a un entero (imprima "Input must be a number!")ZeroDivisionErrorsi la entrada es 0 (imprima "Cannot divide by zero!")- Cualquier otra excepción con un manejador genérico (imprima "An unexpected error occurred!")
Hoja de referencia
Maneja diferentes tipos de excepciones usando múltiples bloques except:
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!")Captura múltiples tipos de excepciones en un solo bloque except:
try:
# Algo de código
pass
except (ValueError, TypeError):
print("Invalid input type!")Coloca siempre las excepciones más específicas antes que las más generales en el orden de los bloques except.
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 donde la entrada no se puede convertir a un entero
except ZeroDivisionError:
# Maneja el caso donde la entrada es cero
except:
# Maneja cualquier otra excepción inesperada
return NoneEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Logic & Flow
1Exploración de variables
ConstantesAsignación de múltiples variablesIntercambio de variablesVariables de marcador de posiciónRedondear númerosCasting de listas4Aplicación de Agenda de Contactos
Mostrar MenúAgregar Contacto7Conjuntos Parte 2
Operaciones matemáticas Parte 1Operaciones matemáticas Parte 2Resumen - Búsqueda del tesoroSubconjuntos y superconjuntosIterar sobre conjuntosResumen - Rastreador de torneos10Comprensión de listas básica
La sintaxisCreación de listas simplesAñadir condicionesUso de agregación de datosResumen - La casa de las listasResumen - Elementos de libertad13Sistema de Gestión de Inventarios
Descripción general del proyectoAgregar artículo2Diccionarios Parte 1
¿Qué es un diccionario?Crear un diccionarioAcceder a los valoresModificar diccionariosResumen - Gestor de recetas5Toma de decisiones avanzada
Operador ternarioComprobaciones de pertenenciaComprobaciones de identidadErrores de sangríaRepaso - Filtro de vacaciones8Gestor de registros de estudiantes
Descripción general del proyectoAñadir estudiante11Funciones avanzadas
Retornar múltiples valoresFunciones Lambda Parte 1Funciones Lambda Parte 2Desafío de repaso - Lambda SortFunciones recursivas Parte 1Funciones recursivas Parte 2Repaso - Sumar listas anidadas14Funciones de orden superior
La función MapLa función FilterRepaso - Validador de emailsRepaso - Procesador de números3Diccionarios Parte 2
Métodos de diccionariosDiccionarios anidadosVerificación de clavesIterar sobre diccionariosResumen - Contador de frecuencia6Conjuntos - Parte 1
¿Qué es un conjunto?Operaciones básicasMétodos de conjuntosResumen - Eliminar duplicados9Agregación de datos avanzada
Uso de SumBúsqueda de mínimo y máximoOrdenar datos de manera eficienteRepaso - Ordenador de diccionarios12Manejo básico de errores
¿Qué es el manejo de errores?El bloque Try y ExceptManejo de múltiples excepcionesResumen: Errores del carrito de compras