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 的原因,这不是问题。问题是如果它出现如何继续其余程序。
那你的建议。