Python try / except不起作用

use*_*219 2 python try-catch python-2.4

试图使该try/except语句起作用,但出现问题。此代码将获取一个txt文件,并将位置行0中的文件复制到行1中的位置。它可以工作,但是,如果我将其中一个路径更改为无效路径,则会生成错误,ftplib.error_perm但是except命令无法启动,并且一切正常停止。我究竟做错了什么?Python 2.4

import csv
import operator
import sys
import os
import shutil
import logging
import ftplib
import tldftp

def docopy(filename):
        ftp = tldftp.dev()
        inf = csv.reader(open(filename,'r'))
        sortedlist = sorted(inf, key=operator.itemgetter(2), reverse=True)
        for row in sortedlist:
                src = row[0]
                dst = row[1]
                tldftp.textXfer(ftp, "RETR " + src, dst)


def hmm(haha):
    result = docopy(haha);
    try:
        it = iter(result)
    except ftplib.error_perm:
        print "Error Getting File" 


if __name__ == "__main__":
        c = sys.argv[1]
        if (c == ''):
                raise Exception, "missing first parameter - row"
        hmm(c)
Run Code Online (Sandbox Code Playgroud)

Xym*_*ech 5

except子句将仅捕获raise其相应try块内的d 异常。尝试将docopy函数调用也放入try块中:

def hmm(haha):
    try:
        result = docopy(haha)
        it = iter(result)
    except ftplib.error_perm:
        print "Error Getting File" 
Run Code Online (Sandbox Code Playgroud)

  • @ user1943219不,一旦try块中出现错误,try块中的代码将执行完毕,并且不会再次启动。 (2认同)