SORU
15 EYLÜL 2013, Pazar


Do anahtar Ruby başarısız nedir?

Ruby öğrenme ve fail anahtar kelime ile karşılaştı duyuyorum. Bu ne anlama geliyor?

if password.length < 8
   fail "Password too short"
end
unless  username
   fail "No user name set"
end

CEVAP
15 EYLÜL 2013, Pazar


Yakut, fail raise ile eş anlamlıdır. fail anahtar kelime sınıf Object ile birlikte Kernel modülün bir yöntemdir. fail yöntemi raise anahtar kelime gibi bir çalıştırma hatası yükseltir.

fail üçüncü yöntem aşırı vardır:

  • fail: RuntimeError bir hata iletisi olmadan yükseltir.

  • fail(string): hata iletisi olarak bağımsız değişken: dizesiyle RuntimeError bir yükseltir

    fail "Failed to open file"
    
  • fail(exception [, string [, array]]): hata mesajı (ikinci argüman) ve geri arama bilgileri (üçüncü argüman) isteğe bağlı ile sınıf bir istisna exception (ilk argüman) yükseltir.

    Örnek: eğer kötü bir argüman verilirse başarısız olan bir fonksiyon tanımlamak Varsayalım. Daha iyi ArgumentError RuntimeError: bir yükseltmektir

    fail ArgumentError, "Illegal String"
    

    Başka bir Örnek: rescue blok içindeki trace erişebilirsiniz: fail yöntemi backtrace bütün iletebilirsiniz

    fail ArgumentError, "Illegal String", caller
    

    caller form file:line: in 'method' dizeleri bir dizi olarak geri iz veren Çekirdek bir yöntemdir.

Hiçbir bağımsız değişken özel durum yükseltir $! ya tutarsa bir RuntimeError eğer $! olur nil. Tek bir Dize argümanı ile, bir RuntimeError yükseltir bir ileti dize ile. Aksi takdirde, ilk parametre olmalıdır Özel bir sınıf (ya da bir İstisna döndüren bir nesnenin adı özel durum iletisi) gönderilen nesne. İsteğe bağlı ikinci parametre ileti dışında, üçüncü ile ilgili ayarlar parametre callback bilgi dizisidir. Özel durum yakalandı kurtarma fıkra başlayın...blok sonunda.

Kaynak: Ruby Documentation on the Kernel Module.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hey Nadine

    Hey Nadine

    24 Kasım 2006
  • hotstrikegently

    hotstrikegen

    26 AĞUSTOS 2011
  • whiteboy7thst

    whiteboy7ths

    1 Temmuz 2009