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)

除非您只想为此构建一个扩展模块,否则您不会有太多的运气。要做到这一点,唯一的方法就是在代码中构建自定义错误处理。您可以构建一个特定的内部错误类,当某些类型的错误出现时,以您想要的方式构建它们。为什么需要异常呢?如果代码中没有错误,则不应出现异常。如果您想强制函数返回一个特定的类型,那么您应该研究静态类型检查。