SORU
3 Ocak 2009, CUMARTESİ


En iyi Java istisna yönetimi uygulamaları veya C#

Benim uygulamada özel durumlar işlemek için nasıl karar kaldım.

İstisnalar dışında benim Konular 1 geliyor) çok uzak bir servis ya da 2) erişim veri serisi kaldırılırken bir JSON nesnesi. Ne yazık ki bu görevler ya da (kesme ağ bağlantısı, benim elimde olan birşey değil biçimlendirilmiş JSON nesnesi) için başarı garanti edemem.

Eğer bir istisna karşılaşma yaparsam sonuç olarak, ben sadece işlevi ve geri çağırana YANLIŞ içinde yakalamak. Benim mantık arayan gerçekten eğer görev başarılı olursa, neden değil tek umurunda olan başarılı değildi.

İşte bazı örnek kod (JAVA) tipik bir yöntem)

public boolean doSomething(Object p_somthingToDoOn)
{
    boolean result = false;

    try{
        // if dirty object then clean
        doactualStuffOnObject(p_jsonObject);

        //assume success (no exception thrown)
        result = true;
    }
    catch(Exception Ex)
    {
        //don't care about exceptions
        Ex.printStackTrace();
    }
    return result;
}

Bu yaklaşım iyi olduğunu düşünüyorum, ama gerçekten en iyi uygulamalar, özel durumlar (gerçekten balon bir çağrı yığını bir istisna yapayım?) yönetmek için ne olduğunu merak ediyorum.

Anahtar soruların özeti:

  1. Sadece özel durumlar yakalamak ama onları ya resmen sistemi (ya da bir günlük ya da kullanıcıya bir bildirim yoluyla) haber balon değil mi?
  2. En iyi uygulamalar nelerdir her şeyi bir try catch bloğu/gerektiren bir neden yok istisna yok mu?

Düzenlemek/Takip

Tüm geribildirim için teşekkürler, istisna yönetimi online bazı mükemmel kaynakları buldu

Özel durum yönetimi değişen şeylerden biri bağlama dayalı gibi görünüyor. Ama en önemlisi, tek bir sistem içinde özel durumları yönetmek ne kadar tutarlı olmalıdır.

Ayrıca aşırı deneyin/yakalar ile kod-rot dikkat et ya da bir özel durum saygı (bir istisna uyardı edilmesi gereken şey sistem, uyarı mı?) vererek.

Ayrıca, bu m3rLinEz güzel seçim bir yorum.

En arayanların sadece Anders Hejlsberg ve sana katılıyorum eğer operasyon başarılı olursa ya da umurunda değil.

Bu yorum kadar özel durumları ile ilgili aklıma bazı sorular getiriyor:

  • Bu özel durum nedir?
  • Ne anlamda idare eder mi?
  • Arayanın gerçekten istisna önemsiyor ya da sadece eğer çağrı başarılı olursa umurlarında?
  • Potansiyel bir istisna zarif yönetmek için bir arayan zorluyor mu?
  • Dil idoms saygılı davranıyorsun?
    • Gerçekten boolean gibi bir başarı bayrağı dönmek için ihtiyacınız var mı? Boolean (ya da bir int) dönen (Java sadece özel durumu işlemek istiyorum) bir Java bir C bir zihniyet daha.
    • Hata yönetim yapıları dil ile ilgili:) izleyin !

CEVAP
3 Ocak 2009, CUMARTESİ


Özel durumları yakalamak ve hata kodları içine açmak istiyorsanız bana garip göründü. Neden arayan ikincisi de Java ve C varsayılan istisna üzerinde hata kodları tercih eder sence#?

Sorularınıza gelince:

  1. Sadece gerçekten işleyebilir özel durumları yakalamak. Sadece özel durumlar yakalamak çoğu durumda yapılacak en doğru şey değil. Birkaç istisna dışında (örneğin günlük ve sıralanırken istisnalar vardır arasında ipler) ama bile gerekir genellikle bu gibi durumlarda istisnalar yeniden oluşturma.
  2. Kesinlikle ifadeleri yakalamak/deneyin çok olmamalıdır kod. Yine, bu fikir sadece işleyebilir özel durumları yakalamak. İşlenmemiş açmak için en üstteki özel durum işleyicisi ekleyebilirsiniz bir şey ama son kullanıcı için oldukça faydalı istisnalar aksi her durum yakalamak için çalışmalısınız değil mümkün olan her yerde.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ColdfusTion

    ColdfusTion

    3 Aralık 2007
  • GenTechPC

    GenTechPC

    1 Temmuz 2007
  • JTechTalk

    JTechTalk

    11 Temmuz 2010