Reputation: 13372
Trying to get a handle on the FTP library in Python. :)
Got this so far.
from ftplib import FTP
server = '127.0.0.1'
port = '57422'
print 'FTP Client (' + server + ') port: ' + port
try:
ftp = FTP()
ftp.connect(server, port, 3)
print 'Connected! Welcome msg is \"' + ftp.getwelcome() + '\"'
ftp.cwd('\\')
x = '1'
currentDir = ''
except: //***What do I put here?***
http://docs.python.org/library/ftplib.html says there are several error codes I can catch but I can't do
except: ftplib.all_errors
Second question. :P How can I retrieve more specific information on the error? Perhaps the error code?
Very new to python (an hour in or so).
Upvotes: 11
Views: 27733
Reputation: 881595
I can't do
except: ftplib.all_errors
Of course not, that's simply bad syntax! But of course you can do it with proper syntax:
except ftplib.all_errors:
i.e., the colon after the tuple of exceptions.
How can I retrieve more specific information on the error? Perhaps the error code?
except ftplib.all_errors as e:
errorcode_string = str(e).split(None, 1)[0]
E.g., '530'
will now be the value of errorcode_string
when the complete error message was '530 Login authentication failed'
.
You can find the rest of the exception in the docs.
Upvotes: 24
Reputation: 1358
You dont want to try catch an Exception class unless you have to. Exception is a catch all, instead catch the specific class being thrown, socket.error
import ftplib
import socket <--
server = '127.0.0.1'
port = '57422'
print 'FTP Client (' + server + ') port: ' + port
ftp = ftplib.FTP()
try:
ftp.connect(server, port, 3)
print 'Connected! Welcome msg is \"' + ftp.getwelcome() + '\"'
ftp.cwd('\\')
x = '1'
currentDir = ''
except socket.error,e: <--
print 'unable to connect!,%s'%e
Upvotes: 1
Reputation: 2848
You write
except Exception, e: #you can specify type of Exception also
print str(e)
Upvotes: 2