SORU
15 Ocak 2009, PERŞEMBE


Java hata kodlarını tanımlamak için en iyi yolu/dizeleri?

Java web servis yazıyorum ve söylüyorumhata kodlarını tanımlamak için en iyi yolu anlamaya çalışıyorum ve ilişkili hata onların dizeleri. Sayısal Hata Kodu ve hata bir dize gruplanmış gerekiyor. Her iki Hata Kodu ve hata dizesi istemci, web hizmetine erişmek için gönderilir. Bir SQLException oluştuğunda örneğin, aşağıdakileri yapmak isteyebilirsiniz:

// Example: errorCode = 1, 
//          errorString = "There was a problem accessing the database."
throw new SomeWebServiceException(errorCode, errorString);

İstemci programı iletisi görüntülenebilir:

"Hata #1 oluştu: Var sorun veritabanına erişim."

İlk aklıma gelen hata kodları Enum kullanılan toString yöntemleri hata dizeleri dönmek için geçersiz kılmak için. Ne buldum burada

public enum Errors {
  DATABASE {
    @Override
    public String toString() {
      return "A database error has occured.";
    }
  },

  DUPLICATE_USER {
    @Override
    public String toString() {
      return "This user already exists.";
    }
  },

  // more errors follow
}

Benim sorum:Daha iyi bir yolu bunu yapmak için vardır? Kodda bir çözüm, harici bir dosyadan okuma yerine tercih ederim. Bu proje için Javadoc kullanıyorum ve hata kodları-line belge ve onları otomatik olarak belgelerinde güncelleştirmek için güçlü olmak yararlı olacaktır.

CEVAP
15 Ocak 2009, PERŞEMBE


Evet kesinlikle numaralama çözüm genellikle oldukça iyi olan) daha iyi bir uygulaması var:

public enum Error {
  DATABASE(0, "A database error has occured."),
  DUPLICATE_USER(1, "This user already exists.");

  private final int code;
  private final String description;

  private Error(int code, String description) {
    this.code = code;
    this.description = description;
  }

  public String getDescription() {
     return description;
  }

  public int getCode() {
     return code;
  }

  @Override
  public String toString() {
    return code   ": "   description;
  }
}

Olabilirdi geçersiz kılmak isteyebilirsiniz() sadece açıklama yerine dönmek için emin değilim. Her neyse, asıl mesele, ayrı ayrı her bir hata kodu için geçersiz kılmak gerekmez. Ayrıca açıkça sıra değeri - bu daha kolay sırasını değiştirmek için yapar ve/hatalar daha sonra Kaldır yerine kodu belirtilen ettim unutmayın.

Bu uluslararasılaşmış değil bunu unutma ama web servis istemci yerel bir açıklama gönderir sürece, kolayca kendiniz zaten internationalise edemezsin. En azından hata kodu istemci tarafında i18n için kullanmak zorunda kalacaklar

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dellbear816

    Dellbear816

    4 Mart 2008
  • Michelle Phan

    Michelle Pha

    18 Temmuz 2006
  • New Scientist

    New Scientis

    27 Kasım 2006