gpt4 book ai didi

python - 确定错误/异常类型 Python

转载 作者:行者123 更新时间:2023-11-28 22:35:22 24 4
gpt4 key购买 nike

我正在使用 win32Com 模块将数据写入装有 Python 3.5 的 Windows 7 机器上的 Excel 工作表。当它运行时,我被抛出一个错误。我尝试制作一个“try/except” block ,但我尝试的错误类型显然不是实际的错误类型。这是我的代码:

import win32com.client as win32
import sqlite3

def writeWords(storage):
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = True
wb = excel.Workbooks.Add()
ws = wb.Worksheets('Sheet1')
i = 0
storLen = len(storage)
while i < storLen:
varX = storage[i]
lenVar = len(varX)
q = 0
while q < lenVar:
tarf = str(storage[i][q].encode('ascii', errors='ignore')).lstrip("b\'").rstrip("\'")
try :
ws.Cells(q+1,i+1).Value = (tarf)
except pywintypes.com_error:
print("Error")
q +=1
q += 1
i += 1

我得到的回溯是这样的:

Traceback (most recent call last):
File "C:\Users\LewTo002\Google Drive\Todd's Stuff\python\mailWords\current\mailWords2.py", line 65, in writeWords
ws.Cells(q+1,i+1).Value = (tarf)
File "C:\Users\LewTo002\AppData\Local\Programs\Python\Python35\lib\site-packages\win32com\client\__init__.py", line 474, in __setattr__
self._oleobj_.Invoke(*(args + (value,) + defArgs))
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146777998), None)

在处理上述异常的过程中,又发生了一个异常:

Traceback (most recent call last):
File "C:\Users\LewTo002\AppData\Local\Programs\Python\Python35\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 326, in RunScript
exec(codeObject, __main__.__dict__)
File "C:\Users\LewTo002\Google Drive\Todd's Stuff\python\mailWords\current\mailWords2.py", line 100, in <module>
writeWords(storage)
File "C:\Users\LewTo002\Google Drive\Todd's Stuff\python\mailWords\current\mailWords2.py", line 66, in writeWords
except pywintypes.com_error:
NameError: name 'pywintypes' is not defined

我习惯于在此处 (https://docs.python.org/2/library/exceptions.html#exception-hierarchy) 看到类似的东西,并且一直基于我在此处 (https://docs.python.org/3/tutorial/errors.html) 编写 try/except 的方法

我的问题是如何根据回溯的顶部确定我试图捕获的错误类型?

最佳答案

您需要添加一个导入,更具体地说

from pywintypes import com_error

然后使用下面的

except com_error as e:

关于python - 确定错误/异常类型 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38248083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com