Capítulo 8: Python excepcional
8.5 Ejercicios Prácticos
Ejercicio 1: Creación de una excepción personalizada
Define una nueva clase de excepción llamada TooColdError
que herede de la clase Exception
incorporada. Levanta esta excepción en una función llamada check_temperature
que recibe un valor de temperatura como argumento y levanta TooColdError
si la temperatura está por debajo de 0.
# Exercise 1 skeleton code
class TooColdError(Exception):
pass
def check_temperature(temp):
# your code here
# Test your function
try:
check_temperature(-5)
except TooColdError:
print("Caught a TooColdError!")
Ejercicio 2: Agregando manejo de excepciones
Modifica la función check_temperature
para manejar el caso en que el argumento pasado no sea un número. Si esto sucede, imprime un mensaje de error amigable y devuelve None
.
# Exercise 2 skeleton code
def check_temperature(temp):
# your code here
# Test your function with a non-number argument
result = check_temperature("hot")
Ejercicio 3: Registro (Logging)
Crea un registrador (logger) y úsalo para registrar mensajes de varios niveles. Luego, ajusta el nivel de registro del registrador y observa cómo cambian los mensajes registrados.
# Exercise 3 skeleton code
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# Log some messages
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
# Change the logging level and log some more messages
logger.setLevel(logging.ERROR)
# Log the same set of messages and see what changes
Ejercicio 4: Registro avanzado (Advanced logging)
Configura un registrador para registrar mensajes tanto en la consola como en un archivo. Intenta agregar una marca de tiempo a los mensajes de registro.
# Exercise 4 skeleton code
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# Set up console handler
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# Set up file handler
fh = logging.FileHandler("debug.log")
fh.setLevel(logging.DEBUG)
# Add handlers to logger
logger.addHandler(ch)
logger.addHandler(fh)
# Log some messages
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
¡Recuerda intentar resolver los ejercicios por tu cuenta antes de ver las soluciones!
8.5 Ejercicios Prácticos
Ejercicio 1: Creación de una excepción personalizada
Define una nueva clase de excepción llamada TooColdError
que herede de la clase Exception
incorporada. Levanta esta excepción en una función llamada check_temperature
que recibe un valor de temperatura como argumento y levanta TooColdError
si la temperatura está por debajo de 0.
# Exercise 1 skeleton code
class TooColdError(Exception):
pass
def check_temperature(temp):
# your code here
# Test your function
try:
check_temperature(-5)
except TooColdError:
print("Caught a TooColdError!")
Ejercicio 2: Agregando manejo de excepciones
Modifica la función check_temperature
para manejar el caso en que el argumento pasado no sea un número. Si esto sucede, imprime un mensaje de error amigable y devuelve None
.
# Exercise 2 skeleton code
def check_temperature(temp):
# your code here
# Test your function with a non-number argument
result = check_temperature("hot")
Ejercicio 3: Registro (Logging)
Crea un registrador (logger) y úsalo para registrar mensajes de varios niveles. Luego, ajusta el nivel de registro del registrador y observa cómo cambian los mensajes registrados.
# Exercise 3 skeleton code
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# Log some messages
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
# Change the logging level and log some more messages
logger.setLevel(logging.ERROR)
# Log the same set of messages and see what changes
Ejercicio 4: Registro avanzado (Advanced logging)
Configura un registrador para registrar mensajes tanto en la consola como en un archivo. Intenta agregar una marca de tiempo a los mensajes de registro.
# Exercise 4 skeleton code
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# Set up console handler
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# Set up file handler
fh = logging.FileHandler("debug.log")
fh.setLevel(logging.DEBUG)
# Add handlers to logger
logger.addHandler(ch)
logger.addHandler(fh)
# Log some messages
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
¡Recuerda intentar resolver los ejercicios por tu cuenta antes de ver las soluciones!
8.5 Ejercicios Prácticos
Ejercicio 1: Creación de una excepción personalizada
Define una nueva clase de excepción llamada TooColdError
que herede de la clase Exception
incorporada. Levanta esta excepción en una función llamada check_temperature
que recibe un valor de temperatura como argumento y levanta TooColdError
si la temperatura está por debajo de 0.
# Exercise 1 skeleton code
class TooColdError(Exception):
pass
def check_temperature(temp):
# your code here
# Test your function
try:
check_temperature(-5)
except TooColdError:
print("Caught a TooColdError!")
Ejercicio 2: Agregando manejo de excepciones
Modifica la función check_temperature
para manejar el caso en que el argumento pasado no sea un número. Si esto sucede, imprime un mensaje de error amigable y devuelve None
.
# Exercise 2 skeleton code
def check_temperature(temp):
# your code here
# Test your function with a non-number argument
result = check_temperature("hot")
Ejercicio 3: Registro (Logging)
Crea un registrador (logger) y úsalo para registrar mensajes de varios niveles. Luego, ajusta el nivel de registro del registrador y observa cómo cambian los mensajes registrados.
# Exercise 3 skeleton code
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# Log some messages
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
# Change the logging level and log some more messages
logger.setLevel(logging.ERROR)
# Log the same set of messages and see what changes
Ejercicio 4: Registro avanzado (Advanced logging)
Configura un registrador para registrar mensajes tanto en la consola como en un archivo. Intenta agregar una marca de tiempo a los mensajes de registro.
# Exercise 4 skeleton code
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# Set up console handler
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# Set up file handler
fh = logging.FileHandler("debug.log")
fh.setLevel(logging.DEBUG)
# Add handlers to logger
logger.addHandler(ch)
logger.addHandler(fh)
# Log some messages
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
¡Recuerda intentar resolver los ejercicios por tu cuenta antes de ver las soluciones!
8.5 Ejercicios Prácticos
Ejercicio 1: Creación de una excepción personalizada
Define una nueva clase de excepción llamada TooColdError
que herede de la clase Exception
incorporada. Levanta esta excepción en una función llamada check_temperature
que recibe un valor de temperatura como argumento y levanta TooColdError
si la temperatura está por debajo de 0.
# Exercise 1 skeleton code
class TooColdError(Exception):
pass
def check_temperature(temp):
# your code here
# Test your function
try:
check_temperature(-5)
except TooColdError:
print("Caught a TooColdError!")
Ejercicio 2: Agregando manejo de excepciones
Modifica la función check_temperature
para manejar el caso en que el argumento pasado no sea un número. Si esto sucede, imprime un mensaje de error amigable y devuelve None
.
# Exercise 2 skeleton code
def check_temperature(temp):
# your code here
# Test your function with a non-number argument
result = check_temperature("hot")
Ejercicio 3: Registro (Logging)
Crea un registrador (logger) y úsalo para registrar mensajes de varios niveles. Luego, ajusta el nivel de registro del registrador y observa cómo cambian los mensajes registrados.
# Exercise 3 skeleton code
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# Log some messages
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
# Change the logging level and log some more messages
logger.setLevel(logging.ERROR)
# Log the same set of messages and see what changes
Ejercicio 4: Registro avanzado (Advanced logging)
Configura un registrador para registrar mensajes tanto en la consola como en un archivo. Intenta agregar una marca de tiempo a los mensajes de registro.
# Exercise 4 skeleton code
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# Set up console handler
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# Set up file handler
fh = logging.FileHandler("debug.log")
fh.setLevel(logging.DEBUG)
# Add handlers to logger
logger.addHandler(ch)
logger.addHandler(fh)
# Log some messages
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
¡Recuerda intentar resolver los ejercicios por tu cuenta antes de ver las soluciones!