作者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/m.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