Mar*_*ong 2 python variables error-handling module
我正在使用的python模块包含错误代码列表,如下所示: -
DRV_ERROR_CODES = 20001
DRV_SUCCESS = 20002
DRV_VXDNOTINSTALLED = 20003
DRV_ERROR_SCAN = 20004
DRV_ERROR_CHECK_SUM = 20005
DRV_ERROR_FILELOAD = 20006
DRV_UNKNOWN_FUNCTION = 20007
...
Run Code Online (Sandbox Code Playgroud)
我目前只是将返回值与成功错误代码进行比较,以检查进程是否成功.
if atmcd.DRV_SUCCESS==ret:
Run Code Online (Sandbox Code Playgroud)
我想使用返回值并输出究竟导致错误的内容(例如返回值为2004,因此脚本将打印出有扫描错误).有没有办法比较所有这些变量?有没有更好的方法来查找错误?
您可以收集映射中的所有错误代码:
errornames = {value: name for name, value in vars(atmcd).items() if name.isupper() and name.startswith('DRV_')}
Run Code Online (Sandbox Code Playgroud)
这将生成从错误代码到atmcd模块中使用的名称的映射:
{'20007': 'DRV_UNKNOWN_FUNCTION', '20006': 'DRV_ERROR_FILELOAD', '20005': 'DRV_ERROR_CHECK_SUM', '20004': 'DRV_ERROR_SCAN', '20003': 'DRV_VXDNOTINSTALLED', '20002': 'DRV_SUCCESS', '20001': 'DRV_ERROR_CODES'}
Run Code Online (Sandbox Code Playgroud)
现在,您可以测试错误代码并获取每个错误代码的名称:
if ret in errornames:
print 'Received a {} code'.format(errornames[ret])
Run Code Online (Sandbox Code Playgroud)