python shutil.rmtree打印错误(如果有)

python shutil.rmtree打印错误(如果有),python,Python,它打印“Deleting c:\temp\metabuild”,但既不打印任何错误也不打印“Delete complete”,显然rmtree失败了,但希望它打印错误,是否“raise”打印错误或否?提前谢谢 “raise”会打印错误是什么还是否 否,raise所做的只是重新引发异常,就好像您一开始没有捕获到它一样。特别是,该代码: if os.path.exists(temp_dir): print "Deleting ", temp_dir try: shut

它打印“Deleting c:\temp\metabuild”,但既不打印任何错误也不打印“Delete complete”,显然rmtree失败了,但希望它打印错误,是否“raise”打印错误或否?提前谢谢

“raise”会打印错误是什么还是否

否,
raise
所做的只是重新引发异常,就好像您一开始没有捕获到它一样。特别是,该代码:

if os.path.exists(temp_dir):
    print "Deleting ", temp_dir
    try:
        shutil.rmtree(temp_dir)
    except:
        raise
print "Delete complete"
…保证执行与以下相同的操作(只是速度稍慢,可读性稍差):

如果异常最终传播到顶层而不在任何地方处理,Python将打印回溯并退出。但是,如果链上的任何地方有其他代码处理异常,它可以做任何它想做的事情

如果要打印出异常,必须显式地这样做。例如:

shutil.rmtree(temp_dir)
如果您想要的信息多于
print(e)
print(repr(e))
提供的信息,请参阅库,该库具有各种检索或转储异常及其回溯信息的功能。特别是,要获得与在顶层发生时相同的输出,请执行以下操作:

try:
    shutil.rmtree(temp_dir)
except Exception as e:
    print(e)
    raise
因为
print\u exc
直接从Python的内脏中获取异常对象和其他信息,所以您实际上不需要
异常,除非异常为e:
;您可以只使用
异常除外:
异常除外:

“raise”会打印错误是什么还是否

否,
raise
所做的只是重新引发异常,就好像您一开始没有捕获到它一样。特别是,该代码:

if os.path.exists(temp_dir):
    print "Deleting ", temp_dir
    try:
        shutil.rmtree(temp_dir)
    except:
        raise
print "Delete complete"
…保证执行与以下相同的操作(只是速度稍慢,可读性稍差):

如果异常最终传播到顶层而不在任何地方处理,Python将打印回溯并退出。但是,如果链上的任何地方有其他代码处理异常,它可以做任何它想做的事情

如果要打印出异常,必须显式地这样做。例如:

shutil.rmtree(temp_dir)
如果您想要的信息多于
print(e)
print(repr(e))
提供的信息,请参阅库,该库具有各种检索或转储异常及其回溯信息的功能。特别是,要获得与在顶层发生时相同的输出,请执行以下操作:

try:
    shutil.rmtree(temp_dir)
except Exception as e:
    print(e)
    raise
因为
print\u exc
直接从Python的内脏中获取异常对象和其他信息,所以您实际上不需要
异常,除非异常为e:
;您可以只使用
异常除外:
异常除外:

“raise”会打印错误是什么还是否

否,
raise
所做的只是重新引发异常,就好像您一开始没有捕获到它一样。特别是,该代码:

if os.path.exists(temp_dir):
    print "Deleting ", temp_dir
    try:
        shutil.rmtree(temp_dir)
    except:
        raise
print "Delete complete"
…保证执行与以下相同的操作(只是速度稍慢,可读性稍差):

如果异常最终传播到顶层而不在任何地方处理,Python将打印回溯并退出。但是,如果链上的任何地方有其他代码处理异常,它可以做任何它想做的事情

如果要打印出异常,必须显式地这样做。例如:

shutil.rmtree(temp_dir)
如果您想要的信息多于
print(e)
print(repr(e))
提供的信息,请参阅库,该库具有各种检索或转储异常及其回溯信息的功能。特别是,要获得与在顶层发生时相同的输出,请执行以下操作:

try:
    shutil.rmtree(temp_dir)
except Exception as e:
    print(e)
    raise
因为
print\u exc
直接从Python的内脏中获取异常对象和其他信息,所以您实际上不需要
异常,除非异常为e:
;您可以只使用
异常除外:
异常除外:

“raise”会打印错误是什么还是否

否,
raise
所做的只是重新引发异常,就好像您一开始没有捕获到它一样。特别是,该代码:

if os.path.exists(temp_dir):
    print "Deleting ", temp_dir
    try:
        shutil.rmtree(temp_dir)
    except:
        raise
print "Delete complete"
…保证执行与以下相同的操作(只是速度稍慢,可读性稍差):

如果异常最终传播到顶层而不在任何地方处理,Python将打印回溯并退出。但是,如果链上的任何地方有其他代码处理异常,它可以做任何它想做的事情

如果要打印出异常,必须显式地这样做。例如:

shutil.rmtree(temp_dir)
如果您想要的信息多于
print(e)
print(repr(e))
提供的信息,请参阅库,该库具有各种检索或转储异常及其回溯信息的功能。特别是,要获得与在顶层发生时相同的输出,请执行以下操作:

try:
    shutil.rmtree(temp_dir)
except Exception as e:
    print(e)
    raise

因为
print\u exc
直接从Python的内脏中获取异常对象和其他信息,所以您实际上不需要
异常,除非异常为e:
;您可以只使用
异常除外:
异常除外:

A
尝试:
/
异常除外:raise
不做任何事情(除了使代码更详细和稍微慢一点)。你的意思是,“如果有任何异常,让我来处理它,而不是引发它,通过以与它本来相同的方式引发它。”那么…你在那里试图做什么呢?A
尝试:
/
除了:raise
什么都不做(除了让你的代码更加冗长和稍微慢一点)。你的意思是,“如果有任何异常,让我来处理它,而不是引发它,通过以与它本来相同的方式引发它。”那么…你在那里试图做什么呢?A
尝试:
/
除了:raise
什么都不做(除了让你的代码更加冗长和稍微慢一点)。你是说,“如果有任何例外,让我来处理它,而不是提出它,通过以同样的方式提出它。”那么…你想做什么