SORU
15 ŞUBAT 2011, Salı


Objective-C: Onaylama vs vs özel Durum Hatası

Kakao, zaman NSAssert, NSException, NSError kullanmalıyım?

Düşündüm:

NSAssertHerhangi bir istemci program, kendi yararına bir kez daha kontrol kurallar, kurallar, varsayımlar programcılar için kullanılan oluşturmak için, ya da-koşulları öncesi ve sonrası şartlar?

NSExceptionKitaplığı kullanan diğer programcılar yararı için üçüncü parti bir kütüphane oluşturmak, böylece onlar da hemen bir giriş geçersiz olduğunu bilebilir ki?

NSErrorHarici bir sistem ile veri almak için deki zaman - bir dosya, veritabanı veya web hizmeti gibi bana bir neden vermek için garantili değil mi?

CEVAP
15 ŞUBAT 2011, Salı


BirNSAssertbu başarısız olursa, bir özel durum oluşturur. NSAssert kısa ve kolay olması gibi yazmak ve kod içinde yaptığınız tüm varsayımlar kontrol etmektir. (Bence) istisnalar, sadece bir kısayol için bir alternatif değil. Bir onaylama işlemi başarısız olursa o zaman bir şey kodunuzda çok yanlış gitti ve programa devam etmelidir.

Unutulmaması gereken bir şey NSAssert bir yayın oluşturma kodu derlenmiş olacak, ki bu genellikle akıl sağlığını geliştirme sırasında kontrol etmek için kullanılır. Ben aslında her zaman etkin olan makro savunmak bir özel kullanma eğiliminde.

Bu kez 0 ** kendiNSExceptionkesinlikle bir sürümü kurmak istiyorum, ve bazı bağımsız değişkenler geçersiz olduğunda halk kütüphaneleri/arayüz gibi şeyler ya da yanlış. Gerçekten @catch Bir özel durum için standart bir uygulama değil mi unutmayın ve uygulama çalıştırmaya devam edin. Eğer Apple'ın standart kütüphaneler (örneğin Çekirdek Veri) ile bu deneyin kötü şeyler olabilir. Eğer bir istisna uygulaması genellikle bir programlama hatası var demektir, çünkü oldukça hızlı bir şekilde sonlanmalıdır atılır bir iddia etmeye benzer.

NSErrorsprogramlama hataları değil, hatalar için kütüphaneler/arayüzlerini kullanılmalıdır, ve bu elde edilebilir. Arayan kişiye bilgi/hata kodları sağlar ve hata temiz bir şekilde işlemek, uygun kullanıcı uyarı ve yürütme devam edebilirler. Bu genellikle Dosya-not-found hatası veya başka bir önemli olmayan bir hata gibi şeyler için olabilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Break

    Break

    10 Aralık 2005
  • Capcom Unity

    Capcom Unity

    5 NİSAN 2010
  • Truc Minh

    Truc Minh

    23 Ocak 2011