abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 18:00 | IT novinky

    Společnost Nex Computer stojící za "notebooky bez procesorů a pamětí" NexDock představila telefon NexPhone, který může funguje jako desktop PC, stačí k němu připojit monitor, klávesnici a myš nebo NexDock. Telefon by měl být k dispozici ve třetím čtvrtletí letošního roku. Jeho cena by měla být 549 dolarů. Předobjednat jej lze s vratní zálohou 199 dolarů. V dual-bootu by měl být předinstalovaný Android s Linuxem (Debian) jako aplikací a Windows 11.

    Ladislav Hagara | Komentářů: 0
    dnes 16:00 | Nová verze

    Byla vydána nová major verze 9.0 softwaru pro správu elektronických knih Calibre (Wikipedie). Přehled novinek v poznámkách k vydání. Vypíchnuta je podpora AI.

    Ladislav Hagara | Komentářů: 0
    dnes 14:22 | Nová verze

    Wasmer byl vydán ve verzi 7.0. Jedná se o běhové prostředí pro programy ve WebAssembly. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Zajímavý software

    V reakci na nepopulární plán Microsoftu ještě více ve Windows prohloubit integraci umělé inteligence Copilot, Opera na sociální síti 𝕏 oznámila, že připravuje nativní linuxovou verzi prohlížeče Opera GX. Jedná se o internetový prohlížeč zaměřený pro hráče, přičemž obsahuje všechny základní funkce běžného prohlížeče Opera. Kromě integrace sociálních sítí prohlížeč například disponuje 'omezovačem', který umožňuje uživatelům omezit využití sítě, procesoru a paměti prohlížečem, aby se tak šetřily systémové zdroje pro jinou aktivitu.

    NUKE GAZA! 🎆 | Komentářů: 4
    dnes 06:22 | Zajímavý software

    NVIDIA vydala nativního klienta své cloudové herní služby GeForce NOW pro Linux. Zatím v beta verzi.

    Ladislav Hagara | Komentářů: 3
    dnes 04:33 | Zajímavý projekt

    Open Gaming Collective (OGC) si klade za cíl sdružit všechny klíčové projekty v oblasti linuxového hraní počítačových her. Zakládajícími členy jsou Universal Blue a Bazzite, ASUS Linux, ShadowBlip, PikaOS a Fyra Labs. Strategickými partnery a klíčovými přispěvateli ChimeraOS, Nobara, Playtron a další. Cílem je centralizovat úsilí, takže namísto toho, aby každá distribuce udržovala samostatné opravy systému a podporu hardwaru na

    … více »
    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 04:11 | Bezpečnostní upozornění

    V kryptografické knihovně OpenSSL bylo nalezeno 12 zranitelností. Opraveny jsou v upstream verzích OpenSSL 3.6.1, 3.5.5, 3.4.4, 3.3.6 a 3.0.19. Zranitelnosti objevila společnost AISLE pomocí svého autonomního analyzátoru.

    Ladislav Hagara | Komentářů: 0
    včera 20:11 | Zajímavý software

    Desktopové prostředí Xfce bude mít vlastní kompozitor pro Wayland s názvem xfwl4. V programovacím jazyce Rust s využitím stavebních bloků z projektu Smithay jej napíše Brian Tarricone. Úprava stávajícího xfwm4 tak, aby paralelně podporoval X11 i Wayland, se ukázala jako špatná cesta.

    Ladislav Hagara | Komentářů: 4
    včera 19:11 | Komunita

    Desktopové prostředí KDE Plasma 6.8 poběží už pouze nad Waylandem. Vývojáři, kteří s rozhodnutím nesouhlasí, vytvořili fork KDE Plasma s názvem SonicDE (Sonic Desktop Environment) s cílem zachovat a vylepšovat podporu X11.

    Ladislav Hagara | Komentářů: 6
    včera 12:22 | Nová verze

    Byla vydána nová stabilní verze 7.8 dnes již jedenáctiletého webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 144. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 12
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (6%)
     (0%)
     (10%)
     (24%)
     (3%)
     (5%)
     (2%)
     (12%)
     (32%)
    Celkem 678 hlasů
     Komentářů: 22, poslední včera 23:06
    Rozcestník

    Dotaz: PYTHON error handling

    17.5.2011 02:20 adrinko | skóre: 22
    PYTHON error handling
    Přečteno: 247×
    prosím, prečo mi tu nefunguje správne error handling? v def kazdych_5_sekund je selecta namiesto select a preto by to malo vypisať Oops. Ono to avšak nefunguje a vypíše to celý traceback. prečo? vyskúšal som, že ak by bol preklep napr v def __init__(self), tak by to správne vypísalo Oops, ale keď je preklep alebo chyba nižšie, tak to nefunguje. prečo? chcel by som, aby sa vždy vypísalo len Oops pri akejkoľvek chybe, kdekoľvek v kóde. vďaka vopred za nakopnutie

    # -*- coding: utf-8 -*-
    import sys      
    import traceback 
    
    
    try:
      import pygtk
      pygtk.require("2.0")
      import gtk
      import gobject
    
      class jednoduchy_textovy_prohlizec (Exception):
    
          def __init__(self):
       
              ## naimportovanie firebird db
              import kinterbasdb
              self.con = kinterbasdb.connect(dsn=db, user=usr, password=psw)
              self.cur = self.con.cursor()        
                
              self.okno = gtk.Window()
              self.okno.set_title("Textový editor")
              self.okno.set_border_width(10)
      
              # Editor
              self.textovy_buffer = gtk.TextBuffer()
              self.textovy_prohlizec = gtk.TextView(self.textovy_buffer)
              self.posuvnikove_okno = gtk.ScrolledWindow()
              self.posuvnikove_okno.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
              self.posuvnikove_okno.add_with_viewport(self.textovy_prohlizec)
      
              # Zabalení menu a editoru do VBoxu
              self.vbox = gtk.VBox(False, 5)
              self.vbox.pack_end(self.posuvnikove_okno)
      
              self.okno.add(self.vbox)
              self.okno.show_all()
      
              self.okno.connect("destroy", gtk.main_quit)
              
              # Tímto si vyrobíme "timer" po 5 sekundách
              # timer_id lze využít pro "vypnutí" timeru pomocí gobject.source_remove(timer_id)
              timer_id = gobject.timeout_add(1000, self.kazdych_5_sekund)
      
          def kazdych_5_sekund(self):
              SELECT = "selecta * from aaa"
              self.cur.execute(SELECT)
              for row in self.cur.itermap():
                  id = 'ID:%(ID)s' % row
                  print id
              return True     # Toto způsobí že se toto bude opakovat každých 5s, False - provede se pouze jednou
     
      if __name__ == "__main__":
          aplikace = jednoduchy_textovy_prohlizec()
          gtk.main()
    
    
    #odchytava
    except (RuntimeError, TypeError, NameError, Exception):
      print "Oops!"

    Odpovědi

    17.5.2011 08:46 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: PYTHON error handling
    Především je ve výše uvedeném kódu několik chyb.
    1) od třídy Exception dědí pouze střídy, ve kterých definuješ vlastní výjimky
    2) to jak jsi použil try ... except je řekněme chybné
    Kde odchytávat výjimky? Zde záleží na tobě, kterou část kódu považuješ za důležitou a vhodnou pro "zabezpečení".

    Návrh:
    import pygtk
    pygtk.require("2.0")
    import gtk
    import gobject
    
    class jednoduchy_textovy_prohlizec:
    
          def __init__(self):
          	# .....
     
          def kazdych_5_sekund(self):
              SELECT = "selecta * from aaa"
              try:
                  self.cur.execute(SELECT)
              except "vyjika vyvolana pri execute modulem kinterbasdb":
                  print "Oops!"
                  return False
              for row in self.cur.itermap():
                  id = 'ID:%(ID)s' % row
                  print id
              return True     # Toto způsobí že se toto bude opakovat každých 5s, False - provede se pouze jednou
     
    if __name__ == "__main__":
    	  # a pripadne odchytit ostatni vyjimky, ktere dedi od nize uvedenych. podle me je to zbytecne a spis se zamerit
              # na odchyceni konkretnich vyjimek primo ve tride nebo pri importu
    	  try:
    	  	aplikace = jednoduchy_textovy_prohlizec()
    	  	gtk.main()
    	  except (RuntimeError, TypeError, NameError, Exception):
    	  	print "Oops!"
    

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.