Aynı kodu hem try AND catch bloklarına koymak için iyi bir neden var mı?


13

Dosyada:, yöntem app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Datetime.phpiçinde, render()aynı kod hem try hem de catch bloklarında çalıştırılıyor gibi görünüyor. İstisna hiç ele alınmaz. Böyle bir kod yazmak için nedenleri (varsa) bilmek merak ediyorum:

try {
     $data = Mage::app()->getLocale()
         ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format);
} catch (Exception $e) {
     $data = Mage::app()->getLocale()
         ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format);
}

Yanıtlar:


3

Bana göre bu özel durumda böyle bir kod için bir neden yok.

İsteklerin zaman aşımıyla uğraşırken bunu yapabileceğiniz nedenleri düşünebilirim.

Örneğin:

  • bazı kodların bitmesi çok uzun sürüyor
  • bu kodun sonucuna bağlı bir şey yapmaya çalışırsınız
  • kod henüz yapılmadığından bir istisna atılır
  • catch bloğunuza biraz bekleme süresi ( sleep) ekleyip tekrar deneyin

Ancak her durumda bu çok kötü bir tasarımdır ve istisnalar kaynak tükettiği için performans açısından kötüdür.

catchBlok tek istisnası kullanım ve bitmemiş şeyler geri alma için kullanılmalıdır (örn veritabanı geri alma)

Bahsettiğiniz kod için tüm yöntemi kontrol etmedi, ancak böyle bir kod gördüğümde kodun yeniden düzenlenmesi gerektiğini düşünmeye eğilimliyim ve / veya programcı ile bu kodun arkasındaki nedeni anlamak için programla konuşmak gerekiyor daha büyük sorunları kodun derinliklerine gizleyebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.