Why can not catch the inner exception

人言落日是天涯,望极天涯不见家 kelvin.you at gmail.com
Thu Jun 7 07:17:34 EDT 2007


Please see the follow code,  I can not catch the exception " IOError"
raised from shutil.copyfile() , why?
                try:
                    if (DEST_TYPE & TYPE_FTP):
                        fn = oname
                        ftpc.UploadFile(f, fn)
                    else:
                        fn = os.path.join(dst, oname)
                        shutil.copyfile(f, fn)

                    .... other code....

                except [IOError, FtpcException],why:
                    num = 0
                    print >>sys.stderr, "can not copy '%s' to '%s':
%s"%(f, fn, why)
                    ERR_NUM += 1

I must do like this:
                try:
                    if (DEST_TYPE & TYPE_FTP):
                        fn = oname
                        ftpc.UploadFile(f, fn)
                    else:
                        fn = os.path.join(dst, oname)
                        try:
                             shutil.copyfile(f, fn)
                        except IOError:
                                   ....

                    .... other code....

                except [IOError, FtpcException],why:
                    num = 0
                    print >>sys.stderr, "can not copy '%s' to '%s':
%s"%(f, fn, why)
                    ERR_NUM += 1

Thanks!




More information about the Python-list mailing list