作者Dong0129 (阿东)
看板Python
标题[问题] 关於exception时後续处理
时间Thu Jul 11 13:33:35 2019
各位版友好,
小弟设计了一套工具,但架构上不知道是否正确所以想请教一下各位,
工具为一个主档案和多个可被选来执行的副档案,
主档案结构如下:
#main
import …
def Loop():
for member in list:
try:
#依序执行被选中的副档案
except:
#exception processed
#希望就算其中一个副档案执行时失败也要继续执行下一个副
档案
continue
if __name__==‘__main__’:
try:
Loop()
except:
#exception processed
每个副档案的架构如下:
#main
import …
if __name__==‘__main__’:
try:
#do something
except:
#exception processed
请问在这种架构下,若副档案进入exception时,主档案会继续执行下一个副档案吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.136.91 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1562823217.A.704.html
1F:推 XperiaZ6C: 你副档案不能用 if __name__==‘__main__’ 啊07/11 13:35
2F:→ XperiaZ6C: 这样根本不会执行07/11 13:36
我是用popen去执行每个副档案,可以执行耶...或是该怎麽做比较恰当呢?
※ 编辑: Dong0129 (42.73.136.91 台湾), 07/11/2019 13:38:24
3F:→ XperiaZ6C: 而且你continue放在for回圈的最後一行那等於没写07/11 13:37
我原本写法有误,应该是要放在except底下,请问若改为现在文章中的架构,请问其中一
个副档案进入exception时其他档案会继续执行吗?
※ 编辑: Dong0129 (42.73.136.91 台湾), 07/11/2019 14:06:08
4F:推 XperiaZ6C: 喔喔,用popen去开每个副档案的话那没事,我以为你用07/11 14:08
5F:→ XperiaZ6C: 一般function呼叫07/11 14:08
6F:→ XperiaZ6C: 你其实continue可以不用加,你把所有exception都拉出07/11 14:10
7F:→ XperiaZ6C: 来处理了,程式不会中断,它在except里面跑完自然会继07/11 14:10
8F:→ XperiaZ6C: 续跑for回圈07/11 14:10
9F:→ XperiaZ6C: 是说你用popen的话,那你主程式也不用try-except啊,07/11 14:17
10F:→ XperiaZ6C: 在你的副档案里面处理就好,副档案没成功也不会造成你07/11 14:17
11F:→ XperiaZ6C: 主程式的for回圈中断 07/11 14:17
主档案除了处理副档案还有作其他事情,所以必须用except去纪录错误讯息
※ 编辑: Dong0129 (42.73.136.91 台湾), 07/11/2019 15:37:57