我需要确定谁引发异常来处理更好的 str 错误,有办法吗?
看看我的例子:
try:
os.mkdir('/valid_created_dir')
os.listdir('/invalid_path')
except OSError, msg:
# here i want i way to identify who raise the exception
if is_mkdir_who_raise_an_exception:
do some things
if is_listdir_who_raise_an_exception:
do other things ..
我如何在 python 中处理这个问题?
如果您要根据哪个函数失败来执行完全独立的任务(如您的代码所示),那么单独的 try/exec 块(如现有答案所示)可能会更好(尽管您可能需要跳过第二部分,如果第一个失败了)。
如果在任何一种情况下您都需要做很多事情,并且只有少量工作取决于哪个功能失败,那么分离可能会产生大量重复和重复,因此您建议的形式可能更可取。这追溯Python 标准库中的模块可以在这种情况下提供帮助:
import os, sys, traceback
try:
os.mkdir('/valid_created_dir')
os.listdir('/invalid_path')
except OSError, msg:
tb = sys.exc_info()[-1]
stk = traceback.extract_tb(tb, 1)
fname = stk[0][2]
print 'The failing function was', fname
当然不是print
你会用if
检查以准确决定要进行哪些处理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)