enums/JsonErrorCode.md


Перечисление JsonErrorCode

Пространство имён: goodboyalex\php_components_pack\enums
Версия: 1.0
Доступно с: 1.1.0

Описание

Перечисление определяет коды ошибок, которые могут возникнуть при работе с JSON-данными. Используется для обработки и идентификации различных типов ошибок при сериализации/десериализации JSON.

Автор

  • Имя: Александр Бабаев
  • Email: contact_with_us@babaev-an.ru

Зависимости

  • Трейт: EnumExtensionsTrait — расширяет функциональность перечисления

Константы перечисления

Основные коды ошибок

Unknown (-1)

  • Описание: Неизвестная ошибка
  • Применение: Используется при неопределенных ошибках

None (0)

  • Описание: Ошибок нет
  • Применение: Успешное выполнение операции

Depth (1)

  • Описание: Достигнута максимальная глубина стека
  • Применение: При превышении допустимой вложенности

StateMismatch (2)

  • Описание: Неверный или некорректный JSON
  • Применение: При некорректном формате JSON

CTRLChar (3)

  • Описание: Ошибка управляющего символа
  • Применение: Проблемы с кодировкой или специальными символами

Syntax (4)

  • Описание: Синтаксическая ошибка
  • Применение: Нарушение синтаксиса JSON

UTF8 (5)

  • Описание: Некорректные символы UTF-8
  • Применение: Проблемы с кодировкой UTF-8

Recursion (6)

  • Описание: Зацикленные ссылки
  • Применение: При обнаружении циклических ссылок

InfOrNan (7)

  • Описание: Значения NAN или INF
  • Применение: При обнаружении недопустимых числовых значений

UnsupportedType (8)

  • Описание: Неподдерживаемый тип данных
  • Применение: При попытке сериализации неподдерживаемого типа

InvalidPropertyName (9)

  • Описание: Невалидное имя свойства
  • Применение: При некорректном имени свойства

UTF16 (10)

  • Описание: Некорректные символы UTF-16
  • Применение: Проблемы с кодировкой UTF-16

KeyIsNotArray (11)

  • Описание: Ключ не содержит вложений
  • Применение: При несоответствии структуры данных

NotISerializable (12)

  • Описание: Класс не реализует ISerializable
  • Применение: При попытке сериализации неподдерживаемого класса

Методы перечисления

FromLastError()

public static function FromLastError(): JsonErrorCode

Описание: Получает код ошибки из последней JSON ошибки.

Возвращаемое значение:

  • JsonErrorCode — код ошибки

Примеры использования

Проверка ошибок

try {
    // Попытка обработки JSON
    $result = json_decode($jsonString);
    
    // Получение кода ошибки
    $error = JsonErrorCode::FromLastError();
    
    if ($error !== JsonErrorCode::None)
        throw new Exception("Произошла ошибка: " . $error->getName());
} catch (Exception $e) {
    // Обработка ошибки
}

Обработка конкретных ошибок

switch (JsonErrorCode::FromLastError()) {
    case JsonErrorCode::Syntax:
        // Обработка синтаксической ошибки
        break;
    case JsonErrorCode::UTF8:
        // Обработка ошибок кодировки
        break;
    default:
        // Общая обработка ошибок
        break;
}

Рекомендации по использованию

  1. Проверка ошибок:

    • Всегда проверяйте код ошибки после операций с JSON
    • Используйте конкретные коды ошибок для точной обработки
  2. Обработка исключений:

    • Создавайте отдельные обработчики для критических ошибок
    • Журналируйте коды ошибок для последующего анализа
  3. Валидация данных:

    • Проверяйте структуру данных перед сериализацией
    • Используйте валидацию входных данных

На главную | Содержание