我应该为这个 com_error 使用什么名称?

问题描述 投票:0回答:1

我正在 Windows 10 64 位、pywin32 版本 227 上通过 Anaconda 使用 Python 3.7.9。我想找出我有权读取给定组中的哪些 Outlook 日历。我尝试过 pythoncom 和 pywintypes,以及“ except”短语的各种排列。基本上,最简单的版本应该可以工作:


    def toeIn(cal):
        Recurs=None
        for i, c in enumerate(readIterCal(cal))[0]:
            try:
                Recurs=c.IsRecurring
            except:
                pass
           
        return Recurs

绝对没有什么可以阻止代码破坏并抛出此错误:

com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Outlook', "You don't have appropriate permission to perform this operation.", None, 0, -2147024891), None)

“pythoncom.com_error”:失败。 “com_error”:失败。 “pywintypes.com_error”:失败。如上所述:任何异常:失败。

我收到的错误是我问题的答案:没有权限。伟大的!我只需要处理错误,存储一些响应,然后继续。但这显然是微软的一个神奇错误?有什么办法可以屠龙,还是只是一个被诅咒的操作,不会通过?

outlook win32com
1个回答
0
投票

导入

pythoncom
模块并引用其
com_error
类。

import pythoncom
    
def toeIn(cal):
    Recurs=None
    for i, c in enumerate(readIterCal(cal))[0]:
        try:
            Recurs=c.IsRecurring
        except pythoncom.com_error:
            pass
           
    return Recurs
© www.soinside.com 2019 - 2024. All rights reserved.