SORU
25 NİSAN 2009, CUMARTESİ


C hata yönetimi için goto geçerli kullan?

Bu soru aslında programming.reddit.com interesting discussion bir süre önce bir sonucudur. Bu temelde aşağı aşağıdaki kodu kaynar:

int foo(int bar)
{
    int return_value = 0;
        if (!do_something( bar )) {
                goto error_1;
        }
        if (!init_stuff( bar )) {
                goto error_2;
        }
        if (!prepare_stuff( bar )) {
                goto error_3;
        }
        return_value = do_the_thing( bar );
error_3:
    cleanup_3();
error_2:
    cleanup_2();
error_1:
    cleanup_1();
        return return_value;
}

goto kullanımı buraya gitmek için en iyi yol olarak, tüm olanakları en verimli ve en temiz kodu, ya da bana öyle geliyor en azından sonuçlanan görünür. Steve alıntı McConnellKod Tamamlandı:

Goto rutin bir yararlıdır kaynaklar ayırır. bu kaynakları işlemleri ve sonra kaldırır kaynakları. Bir ile git, bir bölümünde temizleyebilirsin kod. Goto azaltır senin için unutma olasılığı ayırması her yerde kaynakları bir hata tespit.

Bu yaklaşım için başka bir destek geliyorLinux Aygıt Sürücülerikitap, this section.

Ne düşünüyorsun? Bu durumda C goto için geçerli bir ifadedir? Daha kıvrık ve/veya daha verimli kod üretmek, ama goto kaçının hangi yöntemi tercih edersiniz?

CEVAP
26 NİSAN 2009, Pazar


FWİF, hata soru bu alternatifler cevaplar verilmiş daha okunabilir ve anlaşılması kolay olması için örnek şimdiye kadar verdiğin deyim işleme buluyorum. goto genel olarak kötü bir fikir olsa da, basit ve düzgün bir şekilde yapıldığında hata işleme için yararlı olabilir. Bir şey olsa bile bu durumda, goto, iyi tanımlanmış ve daha fazla veya daha az yapılandırılmış şekilde kullanılıyor.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gigawipf

    Gigawipf

    18 ŞUBAT 2010
  • metagamers

    metagamers

    13 Mayıs 2006
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012