bobber205
bobber205

Reputation: 13372

Python Error Catching & FTP

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

Answers (3)

Alex Martelli
Alex Martelli

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

ebt
ebt

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

jcao219
jcao219

Reputation: 2848

You write

except Exception, e:  #you can specify type of Exception also
   print str(e)

Upvotes: 2

Related Questions