Yeniden Fırlatma İz Kaybı (ARCH6154)
Anahtar ruby.logging.reraise-loses-cause · Önem info · Kategori logging
Bir handler içinde cause bağlamadan yeni bir istisna fırlatmak, orijinal yığın izini ve kök nedeni yok eder. Bu, hata ayıklamayı çok zorlaştırır.
Hatalı
Bölüm başlığı “Hatalı”def load_profile(id) fetch(id)rescue Net::HTTPError raise ProfileError, "Profil yüklenemedi"enddef load_profile(id) fetch(id)rescue Net::HTTPError => e raise ProfileError, "Profil yüklenemedi: #{id}"endDüzeltme
Bölüm başlığı “Düzeltme”Ruby orijinal istisnayı otomatik cause olarak bağlar; mevcut handler değişkenini koruyun ve yeni istisnayı bir rescue => e içinde fırlatın.