exceptions/JsonException.md


Класс JsonException

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

Описание

Исключение, которое возникает при ошибках работы с JSON-данными. Наследует базовый класс Exception.

Автор

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

Свойства класса

Публичные свойства

jsonString

  • Тип: ?string
  • Описание: Строка JSON, вызвавшая ошибку (или null)

errorCode

  • Тип: JsonErrorCode
  • Описание: Код ошибки JSON

errorMessage

  • Тип: ?string
  • Описание: Сообщение об ошибке JSON (или null при отсутствии ошибок)

Конструктор

public function __construct(?string $json = null, JsonErrorCode $errorCode = JsonErrorCode::Unknown, ?string $errorMessage = null)

Параметры:

  • $json (?string) — строка JSON (по умолчанию null)
  • $errorCode (JsonErrorCode) — код ошибки (по умолчанию JsonErrorCode::Unknown)
  • $errorMessage (?string) — сообщение об ошибке (по умолчанию null)

Особенности обработки

Обработка сообщений об ошибках

Важные моменты:

  • При отсутствии ошибок возвращается null вместо “No error”
  • Пустые сообщения об ошибках заменяются на пустую строку
  • Конструктор автоматически обрабатывает все параметры

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

Базовый пример

try {
    // Попытка обработки JSON
    $result = json_decode($jsonString);
    
    if (json_last_error() !== JSON_ERROR_NONE) {
        throw new JsonException(
            $jsonString,
            JsonErrorCode::FromLastError(),
            json_last_error_msg()
        );
    }
} catch (JsonException $e) {
    // Обработка ошибки
    echo "Ошибка: " . $e->getMessage();
    echo "Код ошибки: " . $e->errorCode->name;
    echo "JSON строка: " . $e->jsonString;
}

Расширенный пример

try {
    // Пример с кастомным сообщением
    throw new JsonException(
        '{"invalid": json}',
        JsonErrorCode::Syntax,
        'Синтаксическая ошибка в JSON'
    );
} catch (JsonException $e) {
    // Логирование ошибки
    error_log(
        sprintf(
            'Произошла ошибка JSON: %s (код: %s) при обработке JSON: %s',
            $e->errorMessage,
            $e->errorCode->name,
            $e->jsonString
        )
    );
}

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

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

    • Всегда проверяйте код ошибки через $errorCode
    • Используйте $errorMessage для детальной информации
    • Сохраняйте исходную JSON строку для отладки
  2. При выбросе исключения:

    • Укажите конкретный код ошибки
    • Добавьте информативное сообщение
    • Передайте исходную JSON строку при возможности

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