我正在编写一个与Quickbooks接口的Python程序。连接到Quickbooks时,根据问题的不同,我可能会遇到两种常见的异常:
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'QBXMLRP2.RequestProcessor.2', 'The QuickBooks company data file is currently open in a mode other than the one specified by your application.', None, 0, -2147220464), None)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'QBXMLRP2.RequestProcessor.2', 'Could not start QuickBooks.', None, 0, -2147220472), None)
用except Exception as e
捕获泛型异常表明e
的类型是<class 'pywintypes.com_error'>
,它不能用于捕获异常:
那么我如何以非通用的方式捕捉这两个异常呢?理想情况下,代码应具有以下布局:
try:
qb = qbsdk_interface.Qbsdk_Interface(QB_FILE)
except QbWrongModeError as e:
print('Quickbooks is open in the wrong mode!')
except QbClosedError as e:
print('Quickbooks is closed!')
except Exception as e:
print('Something else went wrong!')
当然,异常QbWrongModeError
和{
当我发布后,我就找到了一种以非泛型方式在question that appeared in the Related sidebar中捕获异常的方法。以下是捕获这些异常的方法:
请注意,异常的不同原因不能单独处理,因此必须通过比较
^{pr2}$e.exceptinfo[5]
的值来检查except
子句中的返回代码:我曾考虑过将此问题标记为重复问题,但考虑到其他相关问题都无法处理区分在这一类型下引发的不同异常的情况,因此我将此问题留给它来解决并回答它。在
相关问题 更多 >
编程相关推荐