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 01:44 | Komunita

    Vývojáři GIMPu nově vydávají oficiální snap balíčky GIMPu. Jsou sestavovány přímo v jejich CI (Continuous Integration) systému.

    Ladislav Hagara | Komentářů: 1
    včera 15:22 | Nová verze

    Správce sbírky fotografií digiKam byl vydán ve verzi 8.8.0. Jedná se o převážně opravné vydání provázené aktualizacemi knihoven. Novinky zahrnují implicitní použití systémového barevného profilu monitoru, import/export hierarchie štítků, editační nástroj rozostření aj.

    |🇵🇸 | Komentářů: 0
    17.10. 13:22 | IT novinky

    Steve Jobs a superpočítač Cray-1 budou vyobrazeny na pamětních jednodolarových mincích vyražených v příštím roce v rámci série Americká inovace. Série má 57 mincí, tj. 57 inovací. Poslední 4 mince budou vyraženy v roce 2032.

    Ladislav Hagara | Komentářů: 13
    17.10. 12:22 | Pozvánky

    Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2025 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 1. a 2. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.

    Ladislav Hagara | Komentářů: 0
    17.10. 12:00 | IT novinky

    Senát včera opětovně nepřijal návrh ústavního zákona, který měl do Listiny základních práv a svobod zakotvit právo občanů platit v hotovosti nebo být off-line. Návrh předložila skupina senátorů již v roce 2023. Senát dnes návrh neschválil, ale ani nezamítl. Pokud by ho přijal, dostala by ho k projednání Sněmovna a vyjádřila by se k němu vláda.

    Ladislav Hagara | Komentářů: 21
    16.10. 23:55 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 13.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 1
    16.10. 14:22 | Bezpečnostní upozornění

    Společnost Eclypsium se na svém blogu rozepsala o bezpečnostním problému počítačů Framework. Jedná se o zranitelnost v UEFI umožňující útočníkům obejít Secure Boot.

    Ladislav Hagara | Komentářů: 1
    16.10. 02:33 | Nová verze

    Editor kódů Zed (Wikipedie) po macOS a Linuxu s verzí 0.208.4běží také ve Windows.

    Ladislav Hagara | Komentářů: 8
    15.10. 17:44 | IT novinky

    Apple dnes představil 14palcový MacBook Pro, iPad Pro a Apple Vision Pro s novým čipem M5.

    Ladislav Hagara | Komentářů: 38
    15.10. 13:55 | Nová verze

    Debian pro mobilní zařízení Mobian (Wikipedie) byl vydán ve verzi 13 Trixie. Nová stabilní verze je k dispozici pro PINE64 PinePhone, PinePhone Pro a PineTab, Purism Librem 5, Google Pixel 3a a 3a XL, OnePlus 6 a 6T a Xiaomi Pocophone F1.

    Ladislav Hagara | Komentářů: 2
    Jaké řešení používáte k vývoji / práci?
     (37%)
     (47%)
     (20%)
     (20%)
     (23%)
     (18%)
     (21%)
     (18%)
     (18%)
    Celkem 245 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Python 3 + PyMySql zachytávání výjimek

    31.10.2011 00:14 Martin Matějek | skóre: 12 | blog: Flying_circus | Kladno
    Python 3 + PyMySql zachytávání výjimek
    Přečteno: 413×
    Zdravím,

    tvořím jednoduchou webovou aplikaci v CherryPy, která vytáhne data z MySQL a určitým způsobem je zobrazí. Problém je, že se mi nedaří zachytit výjimku(y), když například neběží databáze, vypadne spojení, atd.

    Když se nepodaří připojit k databázi, dostanu takový traceback
    Traceback (most recent call last):
      File "/usr/lib/python3.2/site-packages/PyMySQL3-0.4-py3.2.egg/pymysql/connections.py", line 661, in _connect
        sock.connect((self.host, self.port))
    socket.error: [Errno 111] Connection refused
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/usr/lib/python3.2/site-packages/cherrypy/_cprequest.py", line 656, in respond
        response.body = self.handler()
      File "/usr/lib/python3.2/site-packages/cherrypy/lib/encoding.py", line 188, in __call__
        self.body = self.oldhandler(*args, **kwargs)
      File "/usr/lib/python3.2/site-packages/cherrypy/_cpdispatch.py", line 34, in __call__
        return self.callable(*self.args, **self.kwargs)
      File "/home/yenn/FIT/SP1/git/lib/frontend.py", line 30, in login
        conn.open()
      File "/home/yenn/FIT/SP1/git/lib/sql.py", line 24, in open
        self.conn = pymysql.connect(host=self.database_var['hostname'], port=int(self.database_var['port']), user=self.database_var['user'], passwd=self.database_var['passwd'], db=self.database_var['dbname'])
      File "/usr/lib/python3.2/site-packages/PyMySQL3-0.4-py3.2.egg/pymysql/__init__.py", line 93, in Connect
        return Connection(*args, **kwargs)
      File "/usr/lib/python3.2/site-packages/PyMySQL3-0.4-py3.2.egg/pymysql/connections.py", line 513, in __init__
        self._connect()
      File "/usr/lib/python3.2/site-packages/PyMySQL3-0.4-py3.2.egg/pymysql/connections.py", line 669, in _connect
        raise OperationalError(2003, "Can't connect to MySQL server on %r (%d)" % (self.host, e.args[0]))
    pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (111)")
    

    Podle jedné stránky by mělo stačit
    try:
        ...
    except socket.error, (value,message): 
        print ("Socket error: ", message) 
        sys.exit(1)
    
    ale to mojí výjimku nezachytí. Nepomůže ani obecná výjimka
    import sys
    
    try:
        foo()
    except:
        print("Unexpected exception or error: ", sys.exc_info()[0])
        raise
    
    výjimky prostě projdou bez povšimnutí.

    Zkoušel jsem zachytávat pymysql.err.OperationalError,OperationalError a další specifické vyjimky, ale žádná změna.

    Pokud vím, výjimky jdou nahoru, dokud je něco nezachytí anebo neshodí program. Jak a kde je tedy zachytávat, když na všechno co jsem zkoušel nereagují?

    P.S.: Python 3.2.2, PyMySQL3 0.4
    Don't judge me by the friends I keep. No, no, no. Judge me by the enemies I have slain!

    Řešení dotazu:


    Odpovědi

    Řešení 1× (Martin Matějek (tazatel))
    31.10.2011 01:19 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
    Rozbalit Rozbalit vše Re: Python 3 + PyMySql zachytávání výjimek

    raise OperationalError(2003, "Can't connect to MySQL server on %r (%d)" % (self.host, e.args[0]))

    Dle tohoto řádku bych zkusil odchytit pymysql.err.OperationalError

    A pozor na to že všechny chyby v Py3k jsou třídy .. viz http://docs.python.org/py3k/tutorial/errors.html

    USE="-gnome -kde";turris
    31.10.2011 16:24 Martin Matějek | skóre: 12 | blog: Flying_circus | Kladno
    Rozbalit Rozbalit vše Re: Python 3 + PyMySql zachytávání výjimek
    Zkusil jsem si napsat co nejkratší kus kódu na otestování a funguje to jak má. Asi jsem v původním kódu měl někde překlep.
    Don't judge me by the friends I keep. No, no, no. Judge me by the enemies I have slain!

    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.