[Gelistirici] r21707 - trunk/python-modules/pardus-python/pardus

Isbaran Akcayir isbaran at gmail.com
5 Mar 2009 Per 10:23:37 EET


2009/3/5 Gürer Özen <gurer at pardus.org.tr>

> On Thursday 05 March 2009 01:57:01 Fatih Aşıcı wrote:
>
> > > +        try:
> > > +            self.cp.read(db_file)
> > > +        except:
> > > +            print "Network configuration file %s is corrupt" % db_file
> > >          self.__unlock()
> >
> > Şu an sadece Net.Link betikleri mi iniutils kullanıyor bilmiyorum; ama bu
> > çözüm ve hatta bu hata mesajı bu modülü kullanmak isteyecek başka
> > uygulamalara uygun olmayabilir.
>
> Bu tür boş except doğru bir yöntem değil. Mesela read yerine red yazsan
> gene
> db corrupt diye hata alacaksın. read fonksiyonu IOError veriyordu sanırım,
> dökümanında yazıyordur, özel olarak onu yakalaman lazım.


ConfigParser'ın raise ettiği exception'lar genel olarak dosyanın
bozukluğuyla ilgililer.
Mesela NoSectionError, DuplicateSectionError, ParsingError,
MissingSectionHeaderError ..

Elbette tüm exception'lar doğru düzgün yakalanmalı, o kodda bir dünya
exception nasılsa olmaz diye yok sayılmış.
Daha önce Bahadır config ve db işleri yapan kodlar tekrar yazılacak demişti,
hata girsek milletin işi gücü olduğundan nasılsa
tekrar yazılacak diye geçiştirilebilirdi. :-) Benim de hepsini düzeltecek
vaktim yok, dikkat çekmiş oldu en azından :D


Bir de kitaplık içinde print kullanmak da güzel bir şey değil. Burada doğru
> çözüm bir exception tanımlamak, hata durumunda (mesela burada read IOError
> atabilir), kendi exception'ımızı bu hata mesajıyla raise etmek, üst seviye
> kodun da bunu yakalayıp devam edip etmeyeceğine, yada hatayı nasıl
> kullanıcıya sunacağına kendi karar vermesi.


Evet kötü yöntem ama bu halinden daha iyi, eğer uğraşacak olursa (
iniutils'in başka nerelerde kullanıldığını bilenler kendi kodlarında
düzeltseler mesela ) ne ala


-- 
İşbaran Akçayır
http://ish.kodzilla.org
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20090305/71c31a94/attachment-0002.htm>


Gelistirici mesaj listesiyle ilgili daha fazla bilgi