[問題] 如何避免執行遇錯時console視窗閃退?

作者: shala (沙羅)   2019-01-26 18:21:47
可能是個蠢問題,不好意思
py程式執行完成後會自動關閉console視窗
雖然程式最後加個input()可以暫停關閉
但若是在執行到input()前就遇到錯誤,console視窗也是會閃退
這有方法克服嗎?
還是說只能先開console視窗再執行py程式呢?
作者: CodingMan (程式俠)   2019-01-26 18:23:00
try?
作者: rexyeah (ccccccc)   2019-01-26 18:34:00
在terminal 下執行應該不會閃退。
作者: XperiaZ6C (真●安卓輕旗艦)   2019-01-26 19:17:00
你寫一個兩行bat專門run這個py檔就好,記得第二行是pause跟直接點兩下執行py檔其實意思差不到
作者: yangs0618 (阿彰)   2019-01-26 19:32:00
我都用cmd 執行
作者: asd2213857 (RyanF)   2019-01-27 01:09:00
我是在每個可能出錯部分前都加一個input() 這樣我比較方便檢查不然之前測試sys.argv差點發瘋
作者: HenryLiKing (HenryLiKing)   2019-01-27 10:43:00
本來就該用 try 啊不然你怎麼知道什麼時候發生錯誤....不然用import os; os.system("pause")
作者: lemon651 (小明)   2019-01-27 15:02:00
...程式終止本來console就會結束 不懂你覺得python未來試想你寫一個程式沒處理exception,exception一出來就讓程式停在那裡,合理嗎?*不懂你覺得python未來要改什麼
作者: ripple0129 (perry tsai)   2019-01-27 16:53:00
你可以try catch error寫進檔案,catch error後sys pause
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2019-01-27 17:14:00
原PO只是想要一個方便的debugger吧
作者: yangs0618 (阿彰)   2019-01-27 17:53:00
我回答的可以吧 被54了
作者: eight0 (欸XD)   2019-01-27 21:04:00
process 結束時關閉視窗是 OS 的行為和 python 無關想要額外處理輸入輸出可以自己寫一個 launcher
作者: s860134 (s860134)   2019-01-27 23:20:00
你的要求其實很簡單 用一個 try:...except: input()把你的程式邏輯包起來,不就停下來了嗎?except BaseException as e: logging.error(e, exc_info=True) 你要的只是想印在螢幕上吧
作者: stucode   2019-01-27 23:55:00
推額外寫一個 launcher。雖然在 atexit 跟 sys.excepthook 暫停都可以達成目的,但是它們都有一些無法對應的情況。(詳見文件跟issue1230540)
作者: x246libra (楓)   2019-01-28 18:56:00
這些開源程式都是UNIX起家的 人家都是在terminal作業自然不會遇到妳說的問題 你的覺得奇怪 是因為微軟的做法 都是在gui視窗工作 所以你才覺得反人性真正搞軟體開法的 最後應該都是要回到 終端機的

Links booklink

Contact Us: admin [ a t ] ucptt.com