Portál AbcLinuxu, 7. listopadu 2025 02:28
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
Ř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.