代码之家  ›  专栏  ›  技术社区  ›  bobber205

捕获ftp时发生python错误

  •  5
  • bobber205  · 技术社区  · 15 年前

    尝试在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_错误

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

    对python非常陌生(大约一小时左右)。

    3 回复  |  直到 8 年前
        1
  •  3
  •   jcao219    15 年前

    你写

    except Exception, e:  #you can specify type of Exception also
       print str(e)
    
        2
  •  17
  •   Zak    8 年前

    我做不到

    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 .

        3
  •  2
  •   ebt    15 年前

    您不想尝试捕获异常类,除非必须这样做。异常是catch all,而不是catch要抛出的特定类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