SORU
18 Temmuz 2010, Pazar


En iyi Uygulama kendi projeniz için NSError etki ve kodları/app

previous SO post hata kurma konusunda kendi çerçeveleri için bir etki, ama en iyi uygulama hatası etki alanları ve özel hata kodlarını kurma çalışmaları varkendi projeniz için/app?

Örneğin, diyelim ki çalışıyorsun bir Çekirdek Veri-yoğun uygulama ile çok doğrulamaları gerekir, sadece sopa ile "raftan" Çekirdek Veri hata kodları (gibi NSManagedObjectValidationError CoreDataErrors.h) veya oluşturmak kendi MyAppErrors.h ve tanımlama hataları ile daha fazla özgüllük (yani, MyAppValidationErrorInvalidCombinationOfLimbs?

Hata kodları hata etki alanı ve dizi anlamlı kodunuzu belirsizliği bir özel oluşturma, ama onu korumak için çok fazla masraf ve bir hata kodu çatışmalar numaralandırma endişe var mı? Ya da başka kaygıları da var mı?

Teşekkürler

CEVAP
18 Temmuz 2010, Pazar


Ben şahsen ters bir DNS stili etki alanı kullanın. Örneğin:

NSError * myInternalError = [NSError errorWithDomain:@"com.davedelong.myproject" code:42 userInfo:someUserInfo];

Etki üçüncü bölümü (@"myproject") yeni bir projeye(*8=^ * . hataları bu proje ("My Project") hataları ayırt etmek için kullanılır com.davedelong.myotherproject).

Bu geliştirici ile kasıtlı olarak uğraşmak için çalışıyor sürece başkasının hatası etki ise 3 . Parti kodu kullanıyorum (varsa) ile çatışma olacak, ben emin olmak için basit bir yoludursadecebana son derece düşüktür... olacağına inanıyorum.

Kod numaralandırma çatışmalar gelince, merak etme. Sadece sürece kodları benzersizdirbir etki alanı içindeTAMAM olmalıdır.

Çeviri hataları gelince, orası sana kalmış. Ne yaparsan yap, sen de belge emin olun.ŞahsenBen genelde sadece pas çerçeve tarafından oluşturulan bir hata gibi geldi bana, ben hiç emin ben ilgilenirim bütün kodları ve tercüme tüm kullanıcı bilgisi içine belirli bir şey için benim projem. Çerçeveler ve daha kodları değiştirmek eklemek veya varolan kodları, vb anlamını değiştirebilir. O da bana hata nereden geldiğini daha ayrıntılı olarak belirlemenize yardımcı olur. Eğer StackKit benim çerçeve com.stackkit etki alanında bir hata oluşturursa, örneğin, çerçeve bir sorun olduğunu biliyorum. Eğer NSURLErrorDomain Bir hata üretir ancak, özellikle URL yükleme mekanizması geldiğini biliyorum.

Sana neolabilirbunu yakalamak çerçevesinde oluşturulan hata ve sarma yeni bir hata nesnesi olan etki ve genel bir kod gibi bir şey kFrameworkErrorCodeUnknown ya da bir şey, ve daha sonra yakalanan hata userInfo NSUnderlyingErrorKey. CoreData bu çok (örneğin, denemek için save: NSManagedObjectContext, ama ilişki bütünlüğü hataları bir tek hata geri ama NSUnderlyingErrorKey içerir çok daha fazla bilgi, özellikle ilişkiler, yanlış, vb.).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009
  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008
  • Utah Valley Online

    Utah Valley

    9 AĞUSTOS 2010