我正在编写一个与 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
is <class 'pywintypes.com_error'>
,不能用于捕获异常:
... catch pywintypes.com_error as e:
NameError: global name 'pywintypes' is not defined
那么我如何以非通用方式捕获这两个异常呢?理想情况下,代码应具有以下布局:
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
and QbClosedError
不存在,那么应该用什么来代替它们呢?