# Обработка ошибок

Обработка ошибок оповещений и NOTAM в продакшне — пустые результаты, истёкшие уведомления и резервные сценарии.



TTL для продакшна: [Кэширование и мониторинг](/docs/v31/alerts-integration-production). Ошибки платформы: [Обработка ошибок](/docs/errors).

### NOTAM [#notams]

`GET /notams/{icao}` возвращает **200** с `notams: []`, если действующих уведомлений нет, — это не ошибка. Трёхбуквенные коды США нормализуются (`JFK` → `KJFK`).

Фильтруйте по `scope` и `type` на стороне клиента: API возвращает все действующие уведомления для указанного места.

### Задержки FAA [#faa-delays]

`total_alerts: 0` с необязательной строкой `message` — корректный ответ «нет действующих программ». Покрытие — **только [FAA NAS](https://www.faa.gov/about/office_org/headquarters_offices/ato/service_units/operations/at_delay_info) США**: международные аэропорты здесь не появятся.

```python
import os

import requests

HEADERS = {
    "X-RapidAPI-Key": os.getenv("RAPIDAPI_KEY", "YOUR_RAPIDAPI_KEY"),
    "X-RapidAPI-Host": "skylink-api.p.rapidapi.com",
}
BASE = "https://skylink-api.p.rapidapi.com"


def fetch_notams(icao: str) -> list[dict]:
    r = requests.get(f"{BASE}/notams/{icao}", headers=HEADERS, timeout=(10, 15))
    r.raise_for_status()
    return r.json().get("notams") or []


def fetch_faa_delays() -> dict:
    r = requests.get(f"{BASE}/delays/faa", headers=HEADERS, timeout=(10, 15))
    r.raise_for_status()
    return r.json()


if __name__ == "__main__":
    notams = fetch_notams("KJFK")
    print(f"KJFK NOTAMs: {len(notams)} active")

    delays = fetch_faa_delays()
    total = delays.get("total_alerts", 0)
    if total == 0:
        print("No active FAA delay programs nationwide.")
    else:
        print(f"Active FAA alerts: {total}")
```

***

См. также: [NOTAM](/docs/v31/notams-integration) · [Задержки FAA](/docs/v31/faa-delays-integration) · [Кэширование и мониторинг](/docs/v31/alerts-integration-production)
