SORU
22 Mayıs 2011, Pazar


İyi bir uygulama yapıcı bir istisna yapmak için mi?

İyi bir uygulama yapıcı bir istisna yapmak için mi? Örneğin bir sınıf Person ben sadece kendi nitelik olarak age var. Şimdi Sınıf olarak sunuyorum

class Person{
  int age;
  Person(int age) throws Exception{
   if (age<0)
       throw new Exception("invalid age");
   this.age = age;
  }

  public void setAge(int age) throws Exception{
  if (age<0)
       throw new Exception("invalid age");
   this.age = age;
  }
}

CEVAP
22 Mayıs 2011, Pazar


Bir kurucu bloklarından kötü bir uygulama değil. Aslındasadeceparametreleri geçersiz bir sorun; örneğin olduğunu belirtmek için bir kurucu için makul bir yol.

Ancak açıkça ilan veya java.lang.Exception atma hemen hemen her zaman kötü bir uygulamadır.

Gerçekleşen olağanüstü koşula uyan özel bir sınıf seçmelisin. Eğer Exception atarsan arayan bildirilmiş ve bildirilmemiş diğer olası durumlar arasında herhangi bir sayı bu istisna ayrı zordur. Bu hata kurtarma zor yapar, ve eğer arayan kişi Hariç yaymak için seçerse, sorun sadece yayılır.


Birisi kontrol değişkenleri için assert kullanarak önerdi. Sorun assert onaylamaları kontrol ve kapatılabilir bir komut satırı ayarı bir JVM ile bu ile. Kullanarak onaylamaları için kontrol İç değişmezler TAMAM, ama kullanarak bunları uygulamak için bağımsız denetleme belirtilen senin javadoc olduğunu, iyi bir fikir değil ... çünkü bunun anlamı sizin yöntem sadece kesinlikle uygulamak belirtimi zaman iddia denetliyor sağladı.

assert ikinci sorun, bir onaylama işlemi başarısız olursa, o zaman AssertionError atılır ve alınan bir bilgelik olduğunukötü fikirError ve onun alt türlerinden birini yakalamaya çalışır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008
  • Tina Chen

    Tina Chen

    26 Mayıs 2012
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012