JSON hata yönetimi
json_last_error() ve json_last_error_msg() ile JSON hatalarını yakalamayı öğrenirsin.
Hataları last_error ile yakala
decode işlevi geçersiz bir dize alırsa null döndürür ve sessizce hata bayrağı ayarlar. Bu hatayı last_error işleviyle kod olarak, last_error_msg işleviyle kısa ileti olarak okursun.
Hata yoksa last_error işlevi ERROR_NONE sabitini döndürür. Sözdizimi hatasında ERROR_SYNTAX döner ve ileti Syntax error olur. Bu yüzden çözümlemeden sonra durumu denetlemek iyi bir alışkanlıktır.
THROW_ON_ERROR ile özel durum fırlat
Geleneksel yöntemde hatayı last_error ile denetlersin. Modern bir alternatif, THROW_ON_ERROR seçeneğini kullanmaktır. Bu seçenek decode veya encode işlevine verildiğinde hata durumunda bir özel durum fırlatılır.
Bu sayede try/catch bloğuyla hatayı tek yerde yakalarsın. İki yöntemden birini seçersin: ya her çağrıdan sonra last_error denetlersin ya da THROW_ON_ERROR ile try/catch kullanırsın.
Uygulama Geçersiz dizenin hata iletisini yazdır
$text değişkeni geçersiz bir dize tutuyor. decode işleviyle çözümle, sonra last_error_msg işleviyle hata iletisini ekrana yazdır.
Örnek çözümü göster
decode ile $text'i çözümle, sonra echo ile last_error_msg() çağır.
Örnek çözüm:
decode($text, true);
echo last_error_msg();
Kendini test et
-
Hata işlevlerini ve sabitleri eşleştir
- json_last_error
- hata kodunu döndürür
- json_last_error_msg
- hata iletisini döndürür
- ERROR_NONE
- hata yok durumu
- ERROR_SYNTAX
- sözdizimi hatası
-
Hangi işlev hata iletisini metin olarak verir?
- encode işlevi
- decode işlevi
- last_error işlevi
- last_error_msg işlevi
Cevabı göster
last_error_msg işlevi — Doğru. last_error_msg işlevi hata iletisini kısa metin olarak döndürür.
-
Hata kodunu denetle
$text = '{invalid}'; decode($text, true); if (____ !== ERROR_NONE) { echo last_error_msg(); }Cevabı göster
$text = '{invalid}'; decode($text, true); if (last_error() !== ERROR_NONE) { echo last_error_msg(); }