模块中的Python异常处理

时间:2015-03-01 09:13:10

标签: python exception module gammu

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的原因是什么,这不是问题。问题是关于如何出现其他程序的继续。

请你提出建议。

1 个答案:

答案 0 :(得分:0)

您也可以更改main.py。

而不是:

except ImportError:
你可以说:

except:

然后它应该继续。

PS:Naked除了陈述不好的风格