SORU
10 HAZİRAN 2010, PERŞEMBE


&; İddia" anahtar kelime " ne yapar?

assert ne yapar? İşlevi: örneğin

private static int charAt(String s, int d) {
    assert d >= 0 && d <= s.length();
    if (d == s.length()) return -1;
    return s.charAt(d);
}

CEVAP
10 HAZİRAN 2010, PERŞEMBE


Eğer -enableassertions ile VM sonra başlarsanız bu . Kısacası:

assert cond;

gibi davranır

if (!cond)
    throw new AssertionError();

Eğer -enableassertions olmadan VM başlatırsanız (iddia deyim hiç yürütülmez.)

Eğer söz konusu iddia çok assert d >= 0 && d <= s.length(); eşdeğerdir

if (!(d >= 0 && d <= s.length()))
    throw new AssertionError();

Eğer program başlatıldı (java -enableassertions YourProgram ile.)


Resmi olarak, Java Language Specification: 14.10. The assert Statement şunları söylüyor:

14.10 geçerli. assert DeyimBir onaylama assert deyimi bir boolean ifadeyi içeren. Bir iddiaya devre dışı ya da etkin. Eğer onaylama işlemi etkinleştirilmişse, onaylama, yürütme boolean ifadenin değerlendirilmesine neden olurbir hata bildirdieğer bu ifade 17 ** değerlendirilirse. Eğer onaylama işlemi devre dışı bırakılırsa, bu iddianın infaz hiçbir etkisi olmaz.

Nerede< . em ^"etkin veya devre dışı"-ea anahtarı ile kontrol edilir"Bir hata bildirdi"AssertionError atılır bir araç bu.


Ve son olarak, assert daha az bilinen bir özelliği

Bu gibi : "Error message" ekleyebilirsiniz:

assert d != null : "d is null";

atılan AssertionError hata iletisi ne olması gerektiğini belirtmek için.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kim Barbin

    Kim Barbin

    3 Mayıs 2012
  • Miles Fisher

    Miles Fisher

    8 NİSAN 2009
  • rekjavicxxx

    rekjavicxxx

    28 EKİM 2007