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上说有几个错误代码可以捕捉,但我不知道怎么做
比如:except: ftplib.all_errors
第二个问题。 :P 我怎么才能获取更具体的错误信息呢?也许是错误代码?
我刚接触Python(大约一个小时)。
3 个回答
1
除非真的必要,否则你不应该去捕捉一个异常类。异常是一个通用的捕捉工具,最好是捕捉具体的错误类型,比如 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
24
我做不到
except: ftplib.all_errors
当然不行,那样写是错误的语法!不过你可以用正确的语法来实现:
except ftplib.all_errors:
也就是说,异常的元组后面要加上冒号。
我怎么才能获取更具体的错误信息呢?比如错误代码?
except ftplib.all_errors as e:
errorcode_string = str(e).split(None, 1)[0]
比如,当完整的错误信息是 '530 登录认证失败'
时,errorcode_string
的值将是 '530'
。
你可以在 文档 中找到其他的异常信息。
2
你写了
except Exception, e: #you can specify type of Exception also
print str(e)