Benim kod hata işleme parçaları dizayn nasıl anlamak için mücadele ediyorum. Geçenlerde ben returning server error codes to the user, eg. 404 errors hakkında gitmek gerektiği konusunda benzer bir soru sordu. Ben uygulamanın geçerli parçası içinde gelen hatayı işlemek gerektiğini öğrendim; yeter basit görünüyor.
Ben zincirinin mevcut bağlantıdan hata işleyemez Ancak, ben ne yapmalıyım? Örneğin, ben doğrulamayı yönetmek için kullanılan bir sınıf olabilir. Bu en yöntemlerden biri olabilir createUser($username, $password)
. Edit: Bu yöntem, bir kullanıcı kimliği veya kullanıcı nesnesi dönecektir. Em>, o işlev içinde, kullanıcı adı zaten var olmadığını belirlemek gerekir. Eğer bu doğruysa, nasıl bu konuda arama kodu uyarmak gerekir? Yerine kullanıcı nesnesi null dönen bir yoludur. Ama nasıl sonra ne hataya neden biliyor musunuz?
How should I handle errors in such a way that calling code can easily find out what caused the error? Is there a design pattern commonly used for this kind of situation?
Edit: Ben söylemeyi unuttum: Ben PHP kullanıyorum.
Birçok kişi istisnalar bu durumda kullanılması gerektiğini iddia ederken Solved:, bunu en iyi çözüm olduğu sonucuna gelmiş.
Öncelikle, istisnalar basit, zarif bir alternatif var. (Ben dilinde yerleşik bir sistem olmadan mümkün olmadığını keşif ... istisnalar zaten yerleşik olan)
İkincisi, yanıt olarak "istisnalar sadece istisnai durumlar için kullanılması gerektiğini ve bu bir değil" argümanı: "When I call getFoo(), I actually expect to get a Foo. If I don't get it, it's by definition an exceptional event." (via, pkainulainen)