Bu örneğin, sunucu hataları dönmek istisnalar atmak için kötü.

4 Cevap php

Ben bir PHP çerçeve üzerinde çalışıyorum ve şu anda hata işleme tasarlama. SO okudum ne dayanarak, sadece istisnai durumlarda, iyi, istisnalar kullanmalısınız. Yanlış bir şifre girildiğinde bu nedenle bir istisna atma yanlıştır.

Ben kullanıcı için sunucu hata kodu geri dönmek istediğinizde (örneğin 404 Sayfa Bulunamadı) istisnaları kullanmaktan kaçınmak gerekir? Eğer öyleyse, benim kendi hata işleme sınıf yazmak gerekir?

4 Cevap

Sizin kod kullanıcı ile etkileşim için bir istisna olmamalı, bu kurtarılamayan bir şey oldu bu kodu daha yüksek bir seviyede bildirmek için istisna atmak gerekir.

Şimdi, ne bağlı olarak, belirli bir HTTP durum kodu ile yanıt isteyebilirsiniz. Ama bu noktada to trigger, bir sunucu hatası durumlar atma değil, sen catching istisnalar ve kullanıcıya uygun bir yanıt veriyor demektir.

Soruları bir makale / blog / item / etc yok ki istenen ne olması gerektiğini ise - de, eğer mümkünse, sadece yanıt kodu ayarlamak için bilgileri görüntüleyen sorumlu kodu, daha sonra tüm yollarla, istisnaları kullanmayın.

Bir MVC framework kullanarak konum ve bireysel kontrolörleri yanıt kodu belirliyorsa, o zaman onlara izin.

Üstteki istisna işleyicisi daha iyi kullanıcıya hata mesajı sunmak için bir http yanıt kodu kullanabilirsiniz Ve eğer, o zaman izin verin.

İstisnalar akış mekanizmaları kontrol edilmez.

İstisnalar app gerçekten durumu idare edemez SADECE bu kez sınırlı olmalıdır.

Dediğin gibi, yanlış bir parola için bir istisna atma çok yanlış.

(SQL sunucusu gibi) gerekli kaynak mevcut değildi ben kadar gelebilir tek sunucu hata tip durumlar vardır.

Bunun ötesinde, erişim engellendi, vb uygulama işlemek için normal bir şekilde olması gereken tüm ortak olaylar vardır.

Ben iki fBirrklı şeylerden bBirhsediyoruz düşünüyorum:

  1. Şey çerçevesinin kendisi yBirnlış gitti, yBir dBir çerçeve çBirlışmBirsı gerektiğini bir şekilde kullBirnıldığındBir oluşur hBirtBirlBirrı.
  2. HTTP durum kodlBirrı (404 SBiryfBir konudBir durum kodu belirtilen BulunBirmBirdı).

Eğer nesne odBirklı bir yBirklBirşım kullBirnBirrBirk sorunu çözmek istiyorsBirnız ilk durumlBirrdBir istisnBir BirtmBir, yBirpmBirk için doğru yoldur. HTTP durum kodlBirrı HTTP protokolünün bir pBirrçBirsı olBirn ve çerçeve herhBirngi bir şekilde onlBirrı ele olmBirmBirlıdır.