Обработка исключений

В процессе работы приложения могут возникать 2 вида исключений, которые мы заложили в приложении — что-то может пойти не так с whereami, через который мы получаем текущие GPS-координаты. Его может не быть в системе или по какой-то причине он может выдать результат не того формата, что мы ожидаем. В таком случае возбуждается исключение CantGetCoordinates.

Также что-то может пойти не так при запросе погоды по координатам. Тогда возбуждается исключение ApiServiceError. Обработаем и его. Файл weather:

#!/usr/bin/env python3.10
from exceptions import ApiServiceError, CantGetCoordinates
from coordinates import get_gps_coordinates
from weather_api_service import get_weather
from weather_formatter import format_weather


def main():
    try:
        coordinates = get_gps_coordinates()
    except CantGetCoordinates:
        print("Не смог получить GPS-координаты")
        exit(1)
    try:
        weather = get_weather(coordinates)
    except ApiServiceError:
        print("Не смог получить погоду в API-сервиса погоды")
        exit(1)
    print(format_weather(weather))


if __name__ == "__main__":
    main()