Знаете ли вы, что в одной строке можно перехватить несколько исключений?

Пользовательские исключения для более четкого кода
Вместо того, чтобы полагаться исключительно на встроенные исключения Python, создавайте собственные исключения для конкретных сценариев вашего приложения. Это делает ваш код более читабельным и предоставляет описательные сообщения об ошибках.

class NegativeNumberError(Exception):
    def __str__(self):
        return "Negative numbers are not allowed!"

def check_positive(number):
    if number < 0:
        raise NegativeNumberError

Сила else в обработке исключений
Многие (включая меня до того, как я начал изучать эту статью) не знают о else в обработке исключений. Он запускается, когда блок try не вызывает никаких исключений, что делает ваш код чище.

try:
    result = 10 / 2
except ZeroDivisionError:
    print("Can't divide by zero!")
else:
    print(f"Result is {result}")

Использование logging вместо print для исключений
Вместо использования операторов print для отображения исключений используйте модуль logging. Он более универсален и позволяет хранить сообщения об ошибках в файлах или других выходных потоках.

import logging

logging.basicConfig(level=logging.ERROR)

try:
    # some code
except Exception as e:
    logging.error(f"An error occurred: {e}")

Перехват нескольких исключений в одной строке
Если у вас есть несколько исключений, требующих одинаковой обработки, перехватывайте их в одной строке, чтобы сделать код более аккуратным.

try:
    # some code
except (ValueError, TypeError, IndexError) as e:
    print(f"An error occurred: {e}")

Используйте finally для действий по очистке
Блок finally выполняется независимо от того, было ли вызвано исключение. Он идеально подходит для действий по очистке, таких как закрытие файлов или освобождение ресурсов.

try:
    file = open("example.txt", "r")
    data = file.read()
except FileNotFoundError:
    print("File not found!")
finally:
    file.close()

Углубите свое понимание
Для более глубокого изучения обработки исключений Python, включая лучшие практики и распространенные ошибки, углубитесь в это