Why can not catch the inner exception
Mark T
nospam at nospam.com
Thu Jun 7 10:53:46 EDT 2007
"人言落日是天涯,望极天涯不见家" <kelvin.you at gmail.com> wrote in message
news:1181215054.826742.75930 at n15g2000prd.googlegroups.com...
> 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!
>
你好,
Use a tuple (IOError,FtpcException) instead of a list in the except
statement and it works.
--马克
More information about the Python-list
mailing list