由于没有人回答或评论这篇文章,我决定重写这篇文章。
考虑以下使用 lxml 的 Python 代码:
treeIter = etree.iterparse(fObj)
for event, ele in treeIter:
if ele.tag == 'logRoot':
try:
somefunction(ele)
except InternalException as e:
e.handle(*args)
ele.clear()
InternalException 是用户定义的,它包含来自 somefunction() 的所有异常,除了 lxml.etree.XMLSyntaxError。InternalException 具有定义良好的处理函数 .handle()。
fObj 有“trueRoot”作为顶级标签,许多“logRoot”作为第二级叶子。
我的问题是:有没有办法在处理异常 e 时记录当前行号?*args 可以被任何可用的参数替换。
任何建议都非常感谢。