[问题] 如何避免执行遇错时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