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

При написании программ мы часто сталкиваемся с ситуациями, когда нормальный поток выполнения программы должен быть изменен из-за некоторых условий. 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: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue