LBYL vs EAFP

Содержание
Введение
LBYL
EAFP
Похожие статьи

Введение

LBYL - Look before you leap

Проверяй прежде чем делать. Семь раз отмерь один раз отрежь



EAFP - Easier to ask forgiveness then permission

Проще извиниться чем спросить разрешение

LBYL

LBYL на примере Python

# Process file: LBYL import os p = '/path/to/datafile.dat' if os.path.exists(p): process_file(p) else: print(f'No such file as {p}')

Перед тем как обрабатывать файл проверяем, что путь до него существует.

Проблемы:

Проверили только путь. А что если файл содержит какой-то мусор?

Что если путь указывает на директорию?

Получается, что нужно сделать ещё две проверки.

И даже в этом случае есть возможная проблема - гонка - что если файл удалят между проверкой и открытием? Получается, что нужно обрабатывать исключение в любом случае.

Изображение баннера

EAFP

EAFP на том же примере из Python

# Process file: EAFP p = '/path/to/datafile.dat' try: process_file(f) except OSError as e: print(f'Error: {e}')

Проверяем получилось или нет, если нет обрабатываем исключение

Похожие статьи
Теория
Программирование
Boilerplate код
Виды копирования
Время работы алгоритма

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: