Python 缩短异常的堆栈跟踪?
当有人破坏我的库时,我会引发一个自定义异常,当前的情况如下:Python 缩短异常的堆栈跟踪?,python,python-3.x,Python,Python 3.x,当有人破坏我的库时,我会引发一个自定义异常,当前的情况如下: Traceback (most recent call last): File "main.py", line 17, in <module> StateMachine() File "main.py", line 15, in __new__ activate(self) File "/home/runner/va4un94x2qp/fsm.py", line 101, in activate
Traceback (most recent call last):
File "main.py", line 17, in <module>
StateMachine()
File "main.py", line 15, in __new__
activate(self)
File "/home/runner/va4un94x2qp/fsm.py", line 101, in activate
state = enable(machine, state)
File "/home/runner/va4un94x2qp/fsm.py", line 94, in enable
raise MissingReturnError("State '{}' in machine '{}' missing a return statement, or it returns None..".format(StateFound.fallmsg, machine.__name__))
fsm.MissingReturnError: State '__main__' in machine 'StateMachine' missing a return statement, or it returns None.
Traceback (most recent call last):
File "main.py", line 17, in <module>
StateMachine()
File "main.py", line 15, in __new__
activate(self)
MissingReturnError: State '__main__' in machine 'StateMachine' missing a return statement, or it returns None.
回溯(最近一次呼叫最后一次):
文件“main.py”,第17行,在
状态机()
文件“main.py”,第15行,新__
激活(自我)
文件“/home/runner/va4un94x2qp/fsm.py”,第101行,激活
状态=启用(机器、状态)
文件“/home/runner/va4un94x2qp/fsm.py”,第94行,启用
raise MissingReturnError(“计算机{}中的状态{}缺少返回语句,或者它不返回任何返回语句…”。格式(StateFound.fallmsg,machine.\uu name__;))
fsm.MissingReturnError:计算机“StateMachine”中的状态“\uuuu main\uuuuu”缺少返回语句,或者它不返回任何语句。
但我希望它看起来像这样:
Traceback (most recent call last):
File "main.py", line 17, in <module>
StateMachine()
File "main.py", line 15, in __new__
activate(self)
File "/home/runner/va4un94x2qp/fsm.py", line 101, in activate
state = enable(machine, state)
File "/home/runner/va4un94x2qp/fsm.py", line 94, in enable
raise MissingReturnError("State '{}' in machine '{}' missing a return statement, or it returns None..".format(StateFound.fallmsg, machine.__name__))
fsm.MissingReturnError: State '__main__' in machine 'StateMachine' missing a return statement, or it returns None.
Traceback (most recent call last):
File "main.py", line 17, in <module>
StateMachine()
File "main.py", line 15, in __new__
activate(self)
MissingReturnError: State '__main__' in machine 'StateMachine' missing a return statement, or it returns None.
回溯(最近一次呼叫最后一次):
文件“main.py”,第17行,在
状态机()
文件“main.py”,第15行,新__
激活(自我)
MissingReturnError:计算机“StateMachine”中的状态“\uuuuu main\uuuuuuu”缺少返回语句,或者它不返回任何语句。
我如何做到这一点,没有任何例外的胡说八道?(因为那不仅影响一个异常,还影响所有异常)我想修改一个异常。顺便说一句,我已经尝试将suppress\u context设置为True,并尝试从None中引发异常。我还能怎么做呢
如果你问,我想要的一切都不需要了。所需要的只是异常消息和activate()方法的调用
我不会搞乱Python解释器,我将向公众发布这个库,我希望每个人都能看到异常。(它是Python3.X)除非您只想为此构建一个扩展模块,否则您不会有太多的运气。要做到这一点,唯一的方法就是在代码中构建自定义错误处理。您可以构建一个特定的内部错误类,当某些类型的错误出现时,以您想要的方式构建它们。为什么需要异常呢?如果代码中没有错误,则不应出现异常。如果您想强制函数返回一个特定的类型,那么您应该研究静态类型检查。