TurkPhp.Com

» Ana Sayfa » TürkPhp » Dosyalar » Forumlar » Makaleler » Linkler Hızlı Menü:

06 Ocak 2009 Salı 09:31

 
TürkPhp.Com Menü
» Ana Sayfa
» PHP Hakkında
» Kitaplar
» Haberler
» Forumlar
» Makaleler
» Ajax
» Hazır Sistemler
» Dosya Arşivi
» Veritabanı
» Ruby
»» Ruby Kurulumu
»» Ruby Download
»» Ruby Linkleri
» Bağlantılar
» İletişim
 
 
Linkler
Ruby Central Sitesi
Ruby Döküman Sitesi
Ruby Forge Sitesi
Ruby Central
Ruby on Rails Web Sitesi
Ruby programlama dili - Vikipedi
Ruby Resmi Web Sitesi
Tercih Market
SaldemSoft
PHPClassesTR
 
Mini Anket
TurkPhp.Com Hangi konuya ağırlık vermeli?
Görsel Anlatım
Basit Konular
Gelişmiş Konular
Güvenlik
Veritabanı
Hazır Sistemler
Forum
Makale
Dosyalar
Hepsine :)
  

 

 
 
 Alt Kategoriler
  Ruby ile Hata işleme : ensure

Bazen bir yöntem işini bitirdikten sonra temizlik yapılması gerekebilir. Örneğin açılmış olan bir dosyanın kapatılması ya da bir veri için ayrılan bellek gözesinin boşaltılması gerekebilir. Eğer her yöntem için her zaman tek bir çıkış noktası olsaydı temizleme kodumuzu tek bir yere koyardık ve çalıştırılacağından emin olurduk. Ancak yöntem bir çok yere geri dönebilir ve temizlik kodumuz beklenmeyen istisnalardan dolayı atlanabilir.

begin
file = open("/tmp/bir_dosya", "w")
# ... dosyaya yaziliyor...
file.close
end

Ayrıca eğer kodun dosyaya yazdığımız kısmında bir istisna meydana gelirse o zaman dosya açık bırakılabilir. Ve böyle bir fazlalığa gitmek istemeyiz:

begin
file = open("/tmp/bir_dosya", "w")
# ... dosyaya yazılıyor ...
file.close
rescue
file.close
fail # istisna yakalanıyor
end

Bu hantal bir yöntemdir; her return ve break ile ilgilenmek zorunda kalınca işler çığrından çıkar.

Bu yüzden "begin...rescue...end" şemasına ensure adında başka bir anahtar kelime daha ekleriz. ensure kodu begin kodunun başarılı olup olmadığına bakmaksızın çalıştırılır.

begin
file = open("/tmp/bir_dosya", "w")
# ... dosyaya yazılıyor ...
rescue
# ... istisnalar yakalanıyor...
ensure
file.close # ...her zaman yapılması gerekir
end

ensure kodunu rescue olmadan da kullanmak mümkündür ya da tam tersi; ancak aynı begin...end bloğunda birlikte kullanılıyorlarsa rescue, ensure'den önce gelmelidir.

Bu sayfayı daha önce 96 kişi görüntüledi.
Geri
 
 
Üyeler için
Kullanıcı
Şifre

Kod:

   
» Üye Ol
» Şifrem?
 
 
Editör ve Yazarlarımız
Ahmet CANALP Ahmet CANALP
CSS Harici Şablon Dosyaları ve Katman Özellikleri
Mehmet CAN Mehmet CAN
mysql_select_db fonksiyonu
 
 



PhpClasses.org

 
 
 
 
 
TurkPhp.Com © 2000-2006 Tüm hakları saklıdır. Kaynak gösterilemeden yayınlanamaz. Sayfa Üretimi: 0.0252