Portál AbcLinuxu, 10. května 2025 05:32
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]) raisevý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
Řešení dotazu:
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
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.