Generación de Excepciones

Al escribir programas, a menudo nos encontramos con situaciones donde el flujo normal de ejecución del programa necesita ser modificado debido a ciertas condiciones. Python nos proporciona mecanismos para manejar tales situaciones a través de excepciones. Las excepciones son eventos que pueden modificar el flujo de control de un programa. En Python, puedes desencadenar manualmente una excepción en cualquier punto de tu programa usando la instrucción raise.
Aquí tienes un ejemplo sencillo del uso de la instrucción raise:
x = -1
if x < 0:
    # generar una excepción si x es negativo
    raise Exception('x should not be negative')
En este programa, si el valor de x es menor que 0, se genera una excepción de tipo Exception con el mensaje "x should not be negative". Si ejecutas este programa, se detendrá en la instrucción raise y mostrará el mensaje de excepción, así:
Exception: x should not be negative
Además de Exception, Python incluye varias excepciones integradas que puedes usar para generar tipos de errores más específicos. Aquí tienes cómo podrías generar un ValueError:
def sqrt(n):
    if n < 0:
        # generar un ValueError si n es negativo
        raise ValueError('Square root not defined for negative numbers')
    return n ** 0.5

print(sqrt(4))    # 2.0
print(sqrt(-1))   # ValueError: Square root not defined for negative numbers
En este ejemplo, la función sqrt(n) intenta calcular la raíz cuadrada del número n. Sin embargo, si n es negativo, genera un ValueError con un mensaje específico.
Ten en cuenta que cuando generas una excepción con raise, el flujo del programa se interrumpe. Este es un comportamiento a menudo deseable, ya que te permite indicar que ha ocurrido algo inesperado que el programa no puede manejar. El tipo específico de excepción y el mensaje proporcionan más información sobre la naturaleza del error.

Desafío: Lector de Archivos

En una gran empresa de software, hay múltiples archivos de código en un directorio. Se te pide que escribas una función en Python que abra un archivo y devuelva su contenido. Pero también debe ser capaz de manejar casos cuando un archivo no existe.
La entrada de la función es el nombre del archivo.
La función debe leer y devolver el contenido del archivo. En el caso de que el archivo no exista, debe generar un FileNotFoundError.
Entrada
Salida
existing_file.txt
Hello World
nonexistingfile.txt
File does not exist
 

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