考慮try: import someProprietaryModuleexcept ImportError: raise ImportError('It appears that <someProprietaryModule> is not installed...')運行時,如果未安裝someProprietaryModule,則會看到:(traceback data)ImportError: unknown module: someProprietaryModuleDuring handling of the above exception, another exception occurred:(traceback data)ImportError: It appears that <someProprietaryModule> is not installed...也許我不希望出現“在處理上述異常...期間”(及其上方的線)。我可以這樣做:_moduleInstalled = Truetry: import someProprietaryModuleexcept ImportError: _moduleInstalled = Falseif not _moduleInstalled: raise ImportError('It appears that <someProprietaryModule> is not installed...')但這感覺有點像駭客。我還能做什么?
2 回答

守著星空守著你
TA貢獻1799條經驗 獲得超8個贊
在raise ... from None這種情況下,可能會使用Python 3.3及更高版本。
try:
import someProprietaryModule
except ImportError:
raise ImportError('It appears that <someProprietaryModule> is not installed...') from None
這具有期望的結果。

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
這可以在Python 2.7和Python 3中完成:
try:
import someProprietaryModule
except ImportError as e:
raised_error = e
if isinstance(raised_error, ImportError):
raise ImportError('It appears that <someProprietaryModule> is not installed...')
添加回答
舉報
0/150
提交
取消