Stackoverflow帖子帮助我很多Python,但我坚持这一点。如果模块中有例外,我无法弄清楚如何简单地跳过模块。此外,如果它发生,我想改变一个变量,因此其余的代码将知道跳过与该模块相关的功能。
我有main.py正在加载我的模块sms.py.在这里你也看到我的尝试不起作用:
try:
import sms
except ImportError:
print "Ok, lets skip that module"
dont_use_sms = 1
导致异常的部分sms.py看起来如下:
import gammu
sm = gammu.StateMachine()
sm.ReadConfig()
try:
sm.Init() # this one to be exact
except:
raise
当我跑步时,我得到以下信息:
Traceback (most recent call last):
File "./main.py", line 10, in <module>
import sms
File "/path/to/sms.py", line 7, in <module>
sm.Init()
gammu.ERR_DEVICENOTEXIST: {'Text': u"Error opening device, it doesn't exist.", 'Code': 4, 'Where': 'Init'}
我试图通过将gammu.ERR_DEVICENOTEXIST作为参数来改变异常,但它没有帮助。 我觉得这个异常应该以某种方式由sms.py处理并正确转发到main.py,但无法弄清楚如何。
顺便说一句,我知道导致gammu.ERR_DEVICENOTEXIST的原因是什么,这不是问题。问题是关于如何出现其他程序的继续。
请你提出建议。
答案 0 :(得分:0)
您也可以更改main.py。
而不是:
except ImportError:
你可以说:
except:
然后它应该继续。
PS:Naked除了陈述不好的风格