2024-10-01 13:33:40 发布
网友
我试图捕捉异常并在代码中的某个点引发更具体的错误:
try: something_crazy() except SomeReallyVagueError: raise ABetterError('message')
这在Python 2中有效,但在Python 3中,它显示两个异常:
有没有什么方法可以绕过这个问题,从而不显示SomeReallyVagueError的回溯?在
SomeReallyVagueError
在Python 3.3及更高版本中,可以使用^{}语法来抑制第一个异常的回溯:
>>> try: ... 1/0 ... except ZeroDivisionError: ... raise ValueError ... Traceback (most recent call last): File "<stdin>", line 2, in <module> ZeroDivisionError: division by zero During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 4, in <module> ValueError >>> >>> >>> try: ... 1/0 ... except ZeroDivisionError: ... raise ValueError from None ... Traceback (most recent call last): File "<stdin>", line 4, in <module> ValueError >>>
在Python 3.3及更高版本中,可以使用^{} 语法来抑制第一个异常的回溯:
相关问题 更多 >
编程相关推荐