Python Error Catching& FTP

时间:2010-07-02 23:48:09

标签: python ftp

尝试在Python中处理FTP库。 :)

到目前为止。

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 说我可以捕获几个错误代码,但我不能这样做

除外:ftplib.all_errors

第二个问题。 :P 如何检索有关错误的更多具体信息?也许是错误代码?

非常新的python(一小时左右)。

3 个答案:

答案 0 :(得分:17)

  

我无法做到

except: ftplib.all_errors

当然不是,这只是糟糕的语法!但当然你可以用正确的语法来做到这一点:

except ftplib.all_errors:

,即在异常元组之后的冒号

  

如何检索更具体的内容   有关错误的信息?也许是   错误代码?

except ftplib.all_errors, e:
  errorcode_string = str(e).split(None, 1)[0]

例如,当'530'完整的错误消息时,errorcode_string现在将是'530 Login authentication failed'的值。

您可以在docs

中找到其余的例外情况

答案 1 :(得分:3)

你写

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

答案 2 :(得分:2)

除非必须,否则你不想尝试捕获异常类。异常是一个catch all,而是捕获抛出的特定类,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