Генерация Исключений

При написании программ мы часто сталкиваемся с ситуациями, когда нормальный поток выполнения программы должен быть изменен из-за некоторых условий. Python предоставляет нам механизмы для обработки таких ситуаций с помощью исключений. Исключения — это события, которые могут изменить поток управления в программе. В Python вы можете вручную вызвать исключение в любой точке вашей программы, используя оператор raise.
Вот простой пример использования оператора raise:
x = -1
if x < 0:
    # вызываем исключение, если x отрицательный
    raise Exception('x не должен быть отрицательным')
В этой программе, если значение x меньше 0, генерируется исключение типа Exception с сообщением "x не должен быть отрицательным". Если вы запустите эту программу, она остановится на операторе raise и выведет сообщение об исключении, вот так:
Exception: x не должен быть отрицательным
Помимо Exception, в Python есть несколько встроенных исключений, которые вы можете использовать для генерации более конкретных типов ошибок. Вот как вы можете вызвать ValueError:
def sqrt(n):
    if n < 0:
        # вызываем ValueError, если n отрицательное
        raise ValueError('Квадратный корень не определен для отрицательных чисел')
    return n ** 0.5

print(sqrt(4))    # 2.0
print(sqrt(-1))   # ValueError: Квадратный корень не определен для отрицательных чисел
В этом примере функция sqrt(n) пытается вычислить квадратный корень числа n. Однако, если n отрицательное, она вызывает ValueError с конкретным сообщением.
Обратите внимание, что когда вы вызываете исключение с помощью raise, поток программы прерывается. Это часто является желаемым поведением, так как позволяет сигнализировать о том, что произошло что-то неожиданное, с чем программа не может справиться. Конкретный тип исключения и сообщение предоставляют больше информации о характере ошибки.

Задание: Чтение файла

В крупной софтверной компании есть несколько файлов кода в каталоге. Вас попросили написать функцию на Python, которая открывает файл и возвращает его содержимое. Однако она должна также обрабатывать случаи, когда файл не существует.
Вход функции — имя файла.
Функция должна читать и возвращать содержимое файла. В случае, когда файл не существует, она должна вызывать FileNotFoundError.
Ввод
Вывод
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