问题本身

原因:traceback.print_exc()函数打印异常信息时,会调用exception的__str__()方法,如果该方法出现异常,就会出现该问题
排查:可以在exception的__str__方法中加try except来捕获异常,打印具体的错误。

总结

通过改写python的特殊方法虽然能提供一些便利,但一定要确保该方法的安全性,如果不需要对外抛异常的话,尽量写在try except的代码块中。