-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patherror_processing.py
More file actions
69 lines (69 loc) · 2.92 KB
/
error_processing.py
File metadata and controls
69 lines (69 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# # Глава 1. Обработка ошибок (тезисно)
#
# ## Основная идея
#
# * Обработка ошибок — это часть качества кода, а не
# внешнее
# дополнение.
# * Чистый код делает ошибки понятными, предсказуемыми и
# удобными для обработки.
#
# ## Используйте исключения, а не коды возврата
#
# * Коды возврата засоряют бизнес-логику.
# * Исключения позволяют отделить нормальный поток выполнения
# от обработки ошибок.
# * Код становится короче и читабельнее.
#
# ## Не возвращайте `None` или `False` вместо ошибки
#
# * Скрытые ошибки приводят к трудноуловимым
# багам.
# * Лучше явно выбрасывать исключение.
# * Ошибка должна быть заметна сразу.
#
# ## Создавайте собственные исключения
#
# * Именованные исключения лучше, чем общий
# `Exception`.
# * Собственные исключения передают контекст
# ошибки.
# * Упрощается отладка и логирование.
#
# ## Не перехватывайте общие исключения без необходимости
#
# * `except Exception` скрывает реальные проблемы.
# * Перехватывайте только те исключения, которые действительно
# можете обработать.
#
# ## Сообщения об ошибках должны быть информативными
#
# * Сообщение должно объяснять, ЧТО произошло и
# ПОЧЕМУ.
# * Избегайте пустых и абстрактных
# формулировок.
#
# ## Не перегружайте код `try/except`
#
# * Блок `try` должен быть минимальным.
# * Основную логику выносите в отдельные
# функции.
#
# ## Не игнорируйте ошибки
#
# * Пустые `except` — плохая практика.
# * Если ошибку нельзя обработать, её нужно
# пробросить выше.
#
# ## `print` vs `logging`
#
# * `print` не подходит для продакшн-кода.
# * Используйте `logging` с уровнями
# (`info`, `warning`, `error`).
#
# ## Итог
#
# * Чистая обработка ошибок = надёжный и читаемый код.
# * Ошибки должны быть явными, понятными и локализованными.
# * Чем меньше хаотичных `try/except`, тем чище архитектура.
#