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

Gürer Özen gurer at pardus.org.tr
5 Mar 2009 Per 09:27:12 EET


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.

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.



Gelistirici mesaj listesiyle ilgili daha fazla bilgi