python 没有报错 退出_python – PyQt:退出时没有错误消息(追溯)

这可能是由于PyQt-5.5中异常处理方式的变化.引用

PyQt5 Docs:

In PyQt v5.5 an unhandled Python exception will result in a call to

Qt’s qFatal() function. By default this will call abort() and the

application will terminate. Note that an application installed

exception hook will still take precedence.

当我在普通控制台中运行您的示例时,这就是我所看到的:

$python test.py

Traceback (most recent call last):

File "test.py", line 213, in testfunc

print(9/0)

ZeroDivisionError: division by zero

Aborted (core dumped)

所以主要区别在于应用程序现在会在遇到未处理的异常时立即中止(即就像普通的python脚本一样).当然,您仍然可以通过使用try / except块来控制此行为,或者通过覆盖sys.excepthook来全局控制此行为.

如果您没有看到任何追溯,这可能是由于您用于运行应用程序的Python IDE出现问题.

PS:

作为最低限度,简单地将回溯打印到stdout / stderr的旧PyQt4行为可以像这样恢复:

def except_hook(cls, exception, traceback):

sys.__excepthook__(cls, exception, traceback)

if __name__ == "__main__":

import sys

sys.excepthook = except_hook

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值