Menu iconMenu icon
Python y SQL Biblia

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!