Exception Python-pythoncom.com_Python 3.2.2中的错误处理

Exception Python-pythoncom.com_Python 3.2.2中的错误处理,exception,pythoncom,Exception,Pythoncom,我正在使用Python3.2.2,并构建一个Tkinter接口来进行一些Active Directory更新。我在尝试处理pythoncom.com_错误异常时遇到问题 我从这里获取了一些代码: 但是,我使用以下方法(直接从上面的站点)处理提出的异常: except pythoncom.com_error,(hr,msg,exc,arg): 这段代码与我见过的许多处理这些异常的站点是一致的,但是在Python3.2.2中,如果在“pythoncom.com_error”后面加上逗号,就会出现

我正在使用Python3.2.2,并构建一个Tkinter接口来进行一些Active Directory更新。我在尝试处理pythoncom.com_错误异常时遇到问题

我从这里获取了一些代码:

但是,我使用以下方法(直接从上面的站点)处理提出的异常:

except pythoncom.com_error,(hr,msg,exc,arg):
这段代码与我见过的许多处理这些异常的站点是一致的,但是在Python3.2.2中,如果在“pythoncom.com_error”后面加上逗号,就会出现语法错误。如果我删除逗号,程序将启动,但当引发异常时,我会得到其他异常,因为“hr”、“msg”等未定义为全局变量

如果我去掉逗号和括号中的所有位,那么一切都很好,只是我不能确切地看到异常中发生了什么,我希望这样我就可以通过AD传递实际的错误消息

有人知道如何在Python 3.2.2中正确处理这些pythoncom异常吗


提前谢谢

你只需要使用现代语法,我认为:

import pythoncom
import win32com
import win32com.client

location = 'fred'
try:
    ad_obj=win32com.client.GetObject(location)
except pythoncom.com_error as error:
    print (error)
    print (vars(error))
    print (error.args)
    hr,msg,exc,arg = error.args
产生

(-2147221020, 'Invalid syntax', None, None)
{'excepinfo': None, 'hresult': -2147221020, 'strerror': 'Invalid syntax', 'argerror': None}
(-2147221020, 'Invalid syntax', None, None)
对我来说[虽然我不确定args的顺序是否与它看起来的一样,所以我可能会显式地引用键;其他人可能肯定知道。]

我使用这种结构(Python 3.5)--

尝试: ... 例外情况除外,如e: 打印(“级别参数错误”,e) ... 其他:

谢谢你,工作做得很出色。我真正想要的是在上面的代码中最终成为
exc
的特定部分。我使用了:除了pythoncom.com\u error as error:hr,msg,exc,arg=error.args errorMessage=exc[2]再次感谢!